data-compliance-mcp 1.0.0 → 1.0.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/package.json CHANGED
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "data-compliance-mcp",
3
- "version": "1.0.0",
3
+ "mcpName": "io.github.OjasKord/data-compliance-mcp",
4
+ "version": "1.0.1",
4
5
  "description": "Classify data safety before your agent stores or shares it. GDPR, HIPAA, PCI-DSS, CCPA. AI-powered.",
5
6
  "main": "src/server.js",
6
7
  "scripts": {
@@ -21,15 +22,24 @@
21
22
  "privacy",
22
23
  "data-privacy",
23
24
  "sensitive-data",
24
- "validator"
25
+ "validator",
26
+ "data-governance",
27
+ "ai-safety",
28
+ "regulation",
29
+ "eu-ai-act"
25
30
  ],
26
- "author": "ojas1",
31
+ "author": "Kord Agencies Pte Ltd <ojas@kordagencies.com>",
27
32
  "license": "UNLICENSED",
28
33
  "homepage": "https://kordagencies.com",
29
34
  "repository": {
30
35
  "type": "git",
31
- "url": "https://github.com/OjasKord/data-compliance-mcp"
36
+ "url": "git+https://github.com/OjasKord/data-compliance-mcp.git"
37
+ },
38
+ "bugs": {
39
+ "url": "https://github.com/OjasKord/data-compliance-mcp/issues"
40
+ },
41
+ "engines": {
42
+ "node": ">=18.0.0"
32
43
  },
33
- "mcpName": "io.github.OjasKord/data-compliance-mcp",
34
44
  "dependencies": {}
35
45
  }
package/server.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
3
3
  "name": "io.github.OjasKord/data-compliance-mcp",
4
- "version": "1.0.0",
5
- "description": "Classify data safety before storing or sharing. GDPR, HIPAA, PCI-DSS, CCPA. AI-powered.",
6
4
  "title": "Data Compliance Classifier MCP",
5
+ "description": "Classify data safety before storing or sharing. GDPR, HIPAA, PCI-DSS, CCPA. AI-powered.",
6
+ "version": "1.0.1",
7
7
  "websiteUrl": "https://kordagencies.com",
8
8
  "repository": {
9
9
  "url": "https://github.com/OjasKord/data-compliance-mcp",
@@ -12,32 +12,14 @@
12
12
  "packages": [
13
13
  {
14
14
  "registryType": "npm",
15
- "registryBaseUrl": "https://registry.npmjs.org",
16
15
  "identifier": "data-compliance-mcp",
17
- "version": "1.0.0",
18
- "transport": {
19
- "type": "stdio"
20
- },
16
+ "version": "1.0.1",
17
+ "transport": { "type": "stdio" },
21
18
  "environmentVariables": [
22
- {
23
- "name": "ANTHROPIC_API_KEY",
24
- "description": "Anthropic API key for AI classification",
25
- "isRequired": true,
26
- "isSecret": true
27
- },
28
- {
29
- "name": "ABUSEIPDB_API_KEY",
30
- "description": "AbuseIPDB API key for threat intelligence (optional - disables IP threat checks if not set)",
31
- "isRequired": false,
32
- "isSecret": true
33
- }
19
+ { "name": "ANTHROPIC_API_KEY", "description": "Anthropic API key for AI classification", "isRequired": true, "isSecret": true },
20
+ { "name": "ABUSEIPDB_API_KEY", "description": "AbuseIPDB API key for threat intelligence (optional)", "isRequired": false, "isSecret": true }
34
21
  ]
35
22
  }
36
23
  ],
37
- "remotes": [
38
- {
39
- "type": "streamable-http",
40
- "url": "https://data-compliance-mcp-production.up.railway.app"
41
- }
42
- ]
24
+ "remotes": [{ "type": "streamable-http", "url": "https://data-compliance-mcp-production.up.railway.app" }]
43
25
  }
package/src/server.js CHANGED
@@ -17,6 +17,8 @@ const FREE_TIER_LIMIT = 20;
17
17
  const FREE_TIER_WARNING = 16;
18
18
  const apiKeys = new Map();
19
19
  const PLAN_LIMITS = { pro: 5000, enterprise: Infinity };
20
+ const STRIPE_PRO_URL = 'https://buy.stripe.com/8x24gy9Ah3iZ8W04xiebu0c';
21
+ const STRIPE_ENTERPRISE_URL = 'https://buy.stripe.com/cNi7sKeUB8Dj7RW7Juebu0d';
20
22
 
21
23
  const LEGAL_DISCLAIMER = 'Classification is AI-powered and for informational purposes only. Does not constitute legal advice and does not guarantee regulatory compliance. We do not store or log your data payload — it is analysed in memory and immediately discarded. Jurisdiction detection uses IPinfo (ipinfo.io). Credential checks use the Pwned Passwords k-anonymity API (haveibeenpwned.com) — your credentials are never transmitted in full. Threat checks use AbuseIPDB (abuseipdb.com). Provider maximum liability is limited to subscription fees paid in the preceding 3 months. Full terms: kordagencies.com/terms.html';
22
24
 
@@ -403,7 +405,7 @@ async function executeTool(name, args, tier) {
403
405
  audit_report: 'Pro plan generates structured audit-ready compliance reports',
404
406
  threat_intelligence: 'Pro plan checks IP addresses in payload against AbuseIPDB threat database',
405
407
  full_reasoning: 'Pro plan includes full AI reasoning per verdict for compliance documentation',
406
- upgrade_url: 'https://kordagencies.com'
408
+ upgrade_url: STRIPE_PRO_URL
407
409
  };
408
410
  } else {
409
411
  result.reasoning = classification.reasoning;
@@ -439,7 +441,7 @@ async function executeTool(name, args, tier) {
439
441
  'Audit-ready compliance report',
440
442
  'Redaction targets per flagged payload'
441
443
  ],
442
- upgrade_url: 'https://kordagencies.com',
444
+ upgrade_url: STRIPE_PRO_URL,
443
445
  checked_at: checkedAt,
444
446
  _disclaimer: LEGAL_DISCLAIMER
445
447
  };
@@ -448,7 +450,7 @@ async function executeTool(name, args, tier) {
448
450
  mode: mode,
449
451
  status: 'PREVIEW — paid plan required',
450
452
  message: 'Pro plan required for ' + mode + ' reports. Upgrade at kordagencies.com.',
451
- upgrade_url: 'https://kordagencies.com',
453
+ upgrade_url: STRIPE_PRO_URL,
452
454
  checked_at: checkedAt,
453
455
  _disclaimer: LEGAL_DISCLAIMER
454
456
  };
@@ -585,7 +587,7 @@ function checkAccess(req, toolName) {
585
587
  return {
586
588
  allowed: false,
587
589
  reason: 'Free tier limit of ' + FREE_TIER_LIMIT + ' classifications/month reached. You have seen it work — upgrade to Pro ($49/month) at kordagencies.com for 5,000 classifications/month.',
588
- upgrade_url: 'https://kordagencies.com',
590
+ upgrade_url: STRIPE_PRO_URL,
589
591
  tier: 'free_limit_reached'
590
592
  };
591
593
  }
@@ -740,7 +742,7 @@ const server = http.createServer(async (req, res) => {
740
742
 
741
743
  if (!access.allowed) {
742
744
  res.writeHead(200, { ...cors, 'Content-Type': 'application/json' });
743
- res.end(JSON.stringify({ jsonrpc: '2.0', id: request.id, result: { content: [{ type: 'text', text: JSON.stringify({ error: access.reason, upgrade_url: 'https://kordagencies.com', _disclaimer: LEGAL_DISCLAIMER }) }] } }));
745
+ res.end(JSON.stringify({ jsonrpc: '2.0', id: request.id, result: { content: [{ type: 'text', text: JSON.stringify({ error: access.reason, upgrade_url: STRIPE_PRO_URL, _disclaimer: LEGAL_DISCLAIMER }) }] } }));
744
746
  return;
745
747
  }
746
748