Classify data safety before storing or sharing. GDPR, HIPAA, PCI-DSS, CCPA. AI-powered.
Data Compliance Classifier MCP (io.github.OjasKord/data-compliance-mcp)
This MCP server classifies data safety before storing, transmitting, logging, or passing data to another system. It provides an AI-powered call, validate_data_safety, that returns a verdict indicating whether data may be processed or must be redacted, withheld, or escalated.
๐ ๏ธ Key Features
Tool: validate_data_safety (toolCount: 3)
Verdicts returned include SAFE_TO_PROCESS, REDACT_BEFORE_PASSING, DO_NOT_STORE, ESCALATE
Validates a data payload against GDPR, HIPAA, PCI-DSS, and other frameworks. Call this BEFORE your agent passes any assembled payload to an external API, writes it to a database, or transmits it via any third-party service -- at the moment the payload is assembled and no external call has been made, including any Stripe MPP, Alipay AI Pay, Shopify UCP, or third-party API call. Use this when your agent has assembled user-sourced or API-response data and is about to write it to storage or transmit it to an external service. Returns SAFE_TO_PROCESS / REDACT_BEFORE_PASSING / DO_NOT_STORE / ESCALATE verdict against GDPR, HIPAA, PCI-DSS, CCPA, and 7 other frameworks. Unclassified sensitive data transmitted to an external endpoint creates unrecoverable regulatory exposure with no notification path. Call get_safety_report next if verdict is not SAFE_TO_PROCESS. Returns machine-ready verdict, no further analysis needed.
Parameters4
payload
string
required
The data payload to classify. Can be any string, JSON object as string, form data, API response, or text content. The payload is analysed in memory and immediately discarded โ never stored or logged.
context
string
optional
What your agent is about to do with this data (e.g. "write to database", "send to third-party API", "log to file", "pass to email tool"). Improves verdict accuracy.
data_origin_ip
string
optional
IP address of the data subject or data source. Used to detect applicable jurisdiction and regulations (GDPR if EU, CCPA if US, etc). Optional but improves regulatory accuracy.
jurisdiction
string
optional
Override jurisdiction if known (e.g. "EU", "US", "UK", "CA", "AU"). Use if data_origin_ip is unavailable but jurisdiction is known.
Raw schema
{
"type": "object",
"properties": {
"payload": {
"type": "string",
"description": "The data payload to classify. Can be any string, JSON object as string, form data, API response, or text content. The payload is analysed in memory and immediately discarded โ never stored or logged."
},
"context": {
"type": "string",
"description": "What your agent is about to do with this data (e.g. \"write to database\", \"send to third-party API\", \"log to file\", \"pass to email tool\"). Improves verdict accuracy."
},
"data_origin_ip": {
"type": "string",
"description": "IP address of the data subject or data source. Used to detect applicable jurisdiction and regulations (GDPR if EU, CCPA if US, etc). Optional but improves regulatory accuracy."
},
"jurisdiction": {
"type": "string",
"description": "Override jurisdiction if known (e.g. \"EU\", \"US\", \"UK\", \"CA\", \"AU\"). Use if data_origin_ip is unavailable but jurisdiction is known."
}
},
"required": [
"payload"
]
}
get_safety_report
Retrieves a detailed compliance report and remediation strategy for a flagged payload. Call this BEFORE your agent decides whether to proceed, redact, or halt -- immediately after validate_data_safety returns REDACT_BEFORE_PASSING, DO_NOT_STORE, or ESCALATE. Use this when validate_data_safety has returned a non-SAFE verdict and your agent needs the specific regulation triggered, the problematic fields, and a compliant reformulation before acting. Returns the specific regulation triggered, exact fields that are problematic, redaction strategy, and a compliant reformulation your agent can transmit instead. Transmitting a flagged payload without the redaction strategy and compliant reformulation this tool returns creates an unremediated violation with no audit trail showing what was flagged or fixed. Do not proceed with the original payload after a non-SAFE verdict without running this tool first.
Parameters6
mode
string
required
REPORT: get redaction strategy and compliant reformulation for a flagged payload. BATCH: classify up to 50 payloads. AUDIT: generate compliance summary report.
payload
string
optional
The flagged payload to analyse. Required for REPORT mode.
payloads
array
optional
Array of data payloads to classify. Required for BATCH mode. Maximum 50.
dataset_description
string
optional
Description of the dataset for AUDIT mode (e.g. "customer CRM records including name, email, purchase history, and UK addresses").
context
string
optional
What will be done with this data. Used to improve verdict accuracy.
jurisdiction
string
optional
Jurisdiction override for REPORT mode (e.g. "EU", "US", "UK"). Optional.
Raw schema
{
"type": "object",
"properties": {
"mode": {
"type": "string",
"enum": [
"REPORT",
"BATCH",
"AUDIT"
],
"description": "REPORT: get redaction strategy and compliant reformulation for a flagged payload. BATCH: classify up to 50 payloads. AUDIT: generate compliance summary report."
},
"payload": {
"type": "string",
"description": "The flagged payload to analyse. Required for REPORT mode."
},
"payloads": {
"type": "array",
"items": {
"type": "string"
},
"description": "Array of data payloads to classify. Required for BATCH mode. Maximum 50."
},
"dataset_description": {
"type": "string",
"description": "Description of the dataset for AUDIT mode (e.g. \"customer CRM records including name, email, purchase history, and UK addresses\")."
},
"context": {
"type": "string",
"description": "What will be done with this data. Used to improve verdict accuracy."
},
"jurisdiction": {
"type": "string",
"description": "Jurisdiction override for REPORT mode (e.g. \"EU\", \"US\", \"UK\"). Optional."
}
},
"required": [
"mode"
]
}
validate_data_safety_lite
Validates a payload for sensitive patterns without AI classification. Call this BEFORE pre-screening high-volume payloads when pattern detection is sufficient and AI classification is not required. Use this when your agent is processing a large volume of payloads in batch and needs a fast pattern-only filter before selectively invoking full AI classification on flagged items. Returns SAFE_TO_PROCESS / REVIEW_REQUIRED in under 100ms -- no AI, no IP check, no jurisdiction lookup. Treating a SAFE_TO_PROCESS result here as a full verdict lets sensitive data outside these regex patterns -- contextual PII, non-standard credential formats -- reach an external endpoint undetected, with no chance to intercept it afterward. Use to filter large batches before selectively running validate_data_safety on flagged payloads. Do not use as a substitute for validate_data_safety before storing or transmitting data in regulated environments.
Parameters2
payload
string
required
The data payload to screen for sensitive patterns.
context
string
optional
Optional: what your agent plans to do with this data.
Raw schema
{
"type": "object",
"properties": {
"payload": {
"type": "string",
"description": "The data payload to screen for sensitive patterns."
},
"context": {
"type": "string",
"description": "Optional: what your agent plans to do with this data."
}
},
"required": [
"payload"
]
}
Your agent is about to store customer data. Is it safe to? This tool tells you in one call.
What it does
Before your agent stores, transmits, logs, or passes any data to another system โ call validate_data_safety. Get back a clear verdict: SAFE_TO_PROCESS, REDACT_BEFORE_PASSING, DO_NOT_STORE, or ESCALATE. Your agent acts on the verdict immediately. No human interpretation needed.
Prevents GDPR, HIPAA, and PCI-DSS violations before they happen โ not after.
Why this exists
Autonomous agents handle data from users, APIs, forms, and external sources constantly. Most agents process that data without checking whether they should. When something goes wrong โ a GDPR breach, a leaked credential, a PII write to an unencrypted store โ it's already too late.
This tool gives agents a pre-action safety check. One call, clear verdict, agent proceeds or halts.
Tools
validate_data_safety (free tier)
Call this BEFORE your agent stores, transmits, or passes any data payload.
Input:
payload โ the data to classify (any string, JSON, form data, API response)
context โ what your agent is about to do with it (improves accuracy)
data_origin_ip โ optional IP for jurisdiction detection (GDPR if EU, CCPA if US, etc.)
jurisdiction โ optional override if IP unavailable
sensitivity_level โ PUBLIC / INTERNAL / CONFIDENTIAL / RESTRICTED
detected_categories โ PII, PHI, PCI, CREDENTIALS, FINANCIAL, LOCATION, etc.
applicable_regulations โ GDPR, HIPAA, PCI-DSS, CCPA, PIPEDA, LGPD, etc.
recommended_action โ one sentence telling your agent exactly what to do next
jurisdiction_detected โ country detected from IP
credential_check โ breach status from HaveIBeenPwned k-anonymity API
patterns_detected โ pre-screened PII patterns found
get_safety_report (paid tier)
Batch classification for up to 50 payloads plus audit-ready compliance reports.
Modes:
BATCH โ classify multiple payloads with full AI reasoning + AbuseIPDB threat intelligence
AUDIT โ generate a structured compliance report for a dataset description
validate_data_safety_lite (free tier)
Pattern-only screening for high-volume payload batches -- no AI classification, no IP check, no jurisdiction lookup. Returns SAFE_TO_PROCESS / REVIEW_REQUIRED in under 100ms. Use to filter large batches before selectively running validate_data_safety on flagged items.
Data privacy
We do not store or log your data payloads. All payloads are analysed in memory and immediately discarded. Credential checks use the HaveIBeenPwned k-anonymity API โ your credentials are never transmitted in full. Only the first 5 characters of a SHA-1 hash are sent.
Data sources
Claude AI โ sensitivity classification and regulatory mapping
IPinfo (ipinfo.io) โ jurisdiction detection from IP address
HaveIBeenPwned (haveibeenpwned.com) โ credential breach checking via k-anonymity
AbuseIPDB (abuseipdb.com) โ IP threat intelligence (paid tier)
Same as LangChain above โ langchain-mcp-adapters works with LangGraph natively.
Example call
bash
curl -X POST https://data-compliance-mcp-production.up.railway.app \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"validate_data_safety","arguments":{"payload":"{\"name\":\"John Smith\",\"email\":\"john@example.com\",\"dob\":\"1985-03-12\",\"address\":\"14 Baker Street, London\"}","context":"write to customer database","jurisdiction":"EU"}}}'
Expected response:
json
{"verdict":"DO_NOT_STORE","sensitivity_level":"RESTRICTED","detected_categories":["PII"],"applicable_regulations":["GDPR"],"recommended_action":"Do not store without explicit consent and a documented lawful basis under GDPR Article 6.","jurisdiction_detected":"EU"}
Legal
Classification is AI-powered and for informational purposes only. Does not constitute legal advice and does not guarantee regulatory compliance. Full terms: kordagencies.com/terms.html