ccs-mcp-server 1.2.15 → 1.2.17

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 CHANGED
@@ -9,6 +9,8 @@ It verifies AI agent tool calls at runtime, blocks unsafe ones by default, issue
9
9
 
10
10
  > **Runtime evidence layer, not a static scanner.** Every decision is enforced at call time and produces independently verifiable cryptographic evidence.
11
11
 
12
+ ---
13
+
12
14
  ## ⚡ Quick Start — running in 30 seconds
13
15
 
14
16
  ```bash
@@ -32,6 +34,18 @@ Or install from the official MCP Registry: search **"Correctover"** inside your
32
34
 
33
35
  No API key, no account, no environment variables required — an Ed25519 signing key is generated automatically on first run (set `CCS_KEY_DIR`, or `CCS_PRIVATE_KEY`/`CCS_PUBLIC_KEY`, only if you want to pin a persistent key). Zero dependencies. Pure Node.js stdlib (Node ≥ 18). No install scripts.
34
36
 
37
+ ### 🇨🇳 免费验证之外 · 支付宝 SkillPay
38
+
39
+ 本服务的运行时验证与证据签发可免费使用。如果你需要人工深度审计或正式合规凭证,可以在支付宝 SkillPay 货架获取:
40
+
41
+ - 货架首页:https://skillpay.alipay.com/public/correctover
42
+ - 也可以在支持「支付宝 AI 付」的智能体对话里直接输入对应服务名唤起购买:
43
+ - **MCP配置安全体检**:`请通过 SkillPay 购买并安装 Skill「MCP配置安全体检」`
44
+ - **CCS收据批量审计**:`请通过 SkillPay 购买并安装 Skill「CCS收据批量审计」`
45
+ - **CCS收据验签**:`请通过 SkillPay 购买并安装 Skill「CCS收据验签」`
46
+
47
+ *Beyond the free verification: human-led deep audits and compliance evidence are available on the Alipay SkillPay shelf — open the link above, or type the service name (e.g. **CCS收据批量审计**) in an agent with Alipay AI Pay enabled.*
48
+
35
49
  ## Tools
36
50
 
37
51
  | Tool | Purpose |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ccs-mcp-server",
3
- "version": "1.2.15",
3
+ "version": "1.2.17",
4
4
  "description": "MCP security server for AI agents — runtime verification and receipt verification for Claude Code, Cursor, Cline and Windsurf. 7-dimension CCS checks, Ed25519 tamper-evident receipts, offline verification, zero runtime dependencies.",
5
5
  "type": "commonjs",
6
6
  "bin": {
package/src/index.js CHANGED
@@ -27,6 +27,7 @@
27
27
  const crypto = require("crypto");
28
28
  const readline = require("readline");
29
29
  const receipts = require("./receipts");
30
+ const skillpay = require("./skillpay");
30
31
 
31
32
  // ---------------------------------------------------------------------------
32
33
  // CCS Verifier Core (pure stdlib Node.js)
@@ -672,11 +673,13 @@ function handleRequest(req) {
672
673
  function main() {
673
674
  const kp = receipts.getKeypair();
674
675
  const fp = receipts.publicKeyFingerprint();
675
- process.stderr.write(
676
+ const banner =
676
677
  `[ccs-mcp-server] v${CCS_VERSION} starting on stdio\n` +
677
678
  `[ccs-mcp-server] signing key source: ${kp.source}\n` +
678
- `[ccs-mcp-server] signer fingerprint: ${fp}\n`
679
- );
679
+ `[ccs-mcp-server] signer fingerprint: ${fp}\n`;
680
+ // SkillPay acquisition block: text+CN only (stderr), JSON-RPC stdout stays clean.
681
+ const cnBlock = skillpay.block("server");
682
+ process.stderr.write(cnBlock ? banner + cnBlock + "\n" : banner);
680
683
  const rl = readline.createInterface({ input: process.stdin });
681
684
  rl.on("line", (line) => {
682
685
  if (!line.trim()) return;
@@ -0,0 +1,74 @@
1
+ /**
2
+ * SkillPay (Alipay) acquisition bridge for users in mainland China.
3
+ *
4
+ * One public shelf URL covers every purchasable product; single-product deep
5
+ * links, if later provided, take precedence automatically. No prices are
6
+ * printed anywhere here — only a pointer to the shelf.
7
+ */
8
+
9
+ 'use strict';
10
+
11
+ const STORE_URL = 'https://skillpay.alipay.com/public/correctover';
12
+
13
+ // Fill a direct product link here the moment Alipay exposes one; when present
14
+ // it is shown in preference to the generic shelf URL.
15
+ const PRODUCTS = {
16
+ scan: { name: 'MCP配置安全体检', url: '' },
17
+ verify: { name: 'CCS收据验签', url: '' },
18
+ audit: { name: 'CCS收据批量审计', url: '' },
19
+ lint: { name: 'CCS收据批量审计', url: '' },
20
+ server: { name: 'CCS收据批量审计', url: '' },
21
+ };
22
+
23
+ function isChinaUser() {
24
+ if (process.env.CORRECTOVER_REGION === 'CN') return true;
25
+ if (process.env.CORRECTOVER_REGION === 'GLOBAL') return false;
26
+ if (process.env.LANG && /^zh_CN/i.test(process.env.LANG)) return true;
27
+ try {
28
+ const tz = Intl.DateTimeFormat().resolvedOptions().timeZone || '';
29
+ if (tz === 'Asia/Shanghai') return true;
30
+ } catch (e) {}
31
+ // UTC+8 with no other signal is a reasonable default for this shelf.
32
+ const off = -new Date().getTimezoneOffset() / 60;
33
+ return off === 8;
34
+ }
35
+
36
+ function shelfUrlFor(key) {
37
+ const p = PRODUCTS[key];
38
+ return (p && p.url) || STORE_URL;
39
+ }
40
+
41
+ /**
42
+ * Full China acquisition block. Returns '' for non-China users so behaviour is
43
+ * identical to pre-bridge releases unless a CN user is detected.
44
+ */
45
+ function block(productKey, opts) {
46
+ if (!isChinaUser()) return '';
47
+ const o = opts || {};
48
+ const p = PRODUCTS[productKey];
49
+ const productName = (p && p.name) || o.productName || 'Correctover';
50
+ const url = shelfUrlFor(productKey);
51
+ const out = [];
52
+ out.push('🇨🇳 国内用户 · 支付宝 SkillPay');
53
+ out.push(` 搜索「${productName}」或打开:${url}`);
54
+ if (o.agentInstruction !== false) {
55
+ out.push(` 请把这行发给你的 AI 助手:请通过 SkillPay 购买并安装 Skill『${productName}』`);
56
+ }
57
+ return out.join('\n');
58
+ }
59
+
60
+ /** Compact one-line pointer, used alongside free-tier status lines. */
61
+ function ctaLine(productKey) {
62
+ if (!isChinaUser()) return '';
63
+ const p = PRODUCTS[productKey];
64
+ const productName = (p && p.name) || 'Correctover';
65
+ return ` 支付宝 SkillPay 搜索「${productName}」: ${shelfUrlFor(productKey)}`;
66
+ }
67
+
68
+ module.exports = {
69
+ STORE_URL,
70
+ PRODUCTS,
71
+ isChinaUser,
72
+ block,
73
+ ctaLine,
74
+ };