@tenova/swt3-mcp 0.5.1 → 0.5.2
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 +161 -32
- package/dist/bin/swt3-mcp.js +3 -2
- package/dist/bin/swt3-mcp.js.map +1 -1
- package/dist/chain-verifier.d.ts +1 -1
- package/dist/chain-verifier.js +1 -1
- package/dist/config.d.ts +48 -6
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +147 -18
- package/dist/config.js.map +1 -1
- package/dist/density-policy.d.ts +2 -2
- package/dist/density-policy.d.ts.map +1 -1
- package/dist/density-policy.js +6 -2
- package/dist/density-policy.js.map +1 -1
- package/dist/redis-reader.d.ts +1 -1
- package/dist/redis-reader.js +1 -1
- package/dist/server.d.ts +2 -2
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +115 -3
- package/dist/server.js.map +1 -1
- package/dist/state.d.ts +3 -1
- package/dist/state.d.ts.map +1 -1
- package/dist/state.js +6 -4
- package/dist/state.js.map +1 -1
- package/dist/tools/trust.d.ts.map +1 -1
- package/dist/tools/trust.js +4 -0
- package/dist/tools/trust.js.map +1 -1
- package/package.json +13 -6
package/README.md
CHANGED
|
@@ -1,7 +1,117 @@
|
|
|
1
1
|
# @tenova/swt3-mcp
|
|
2
2
|
|
|
3
|
+
> Listed on the [MCP Registry](https://github.com/modelcontextprotocol/servers) as `io.tenova/swt3-witness`
|
|
4
|
+
|
|
3
5
|
MCP server for the SWT3 AI Witness protocol. Adds cryptographic compliance attestation to any MCP-compatible AI agent.
|
|
4
6
|
|
|
7
|
+
SWT3 (Sovereign Witness Traceability) works by hashing your AI's inputs and outputs locally, extracting numeric factors (latency, token count, guardrail status), and anchoring them into a cryptographic fingerprint that anyone can independently verify. Your prompts and responses never leave your machine. The auditor gets tamper-proof evidence. You keep your data.
|
|
8
|
+
|
|
9
|
+
## Why This Exists
|
|
10
|
+
|
|
11
|
+
In 2026, attackers exploited MCP configuration injection in Flowise to achieve arbitrary code execution across thousands of AI workflow instances. A compromised third-party AI tool (Context.ai) pivoted into Vercel's internal systems. Microsoft disclosed RCE vulnerabilities in Semantic Kernel where a single prompt could execute commands on the host. 65% of firms reported AI agent security incidents. Only 14.4% of agents go live with full security approval.
|
|
12
|
+
|
|
13
|
+
Every tool call your agent makes is an attack surface. This server witnesses those calls, enforces tool-level policy gates, and produces a cryptographic evidence chain that proves what happened. If an agent is compromised, the audit trail is immutable. If a tool call violates policy, the gate blocks it before execution.
|
|
14
|
+
|
|
15
|
+
## Trust Mesh -- Secure Agent-to-Agent Communication
|
|
16
|
+
|
|
17
|
+
Witnessing your own agent is step one. The next question is: can you trust the agent on the other side? Before two agents exchange data, invoke each other's tools, or share context, each side verifies the other's compliance posture. No anchor, no handshake.
|
|
18
|
+
|
|
19
|
+
**You run Agent A. Your partner runs Agent B. Here's what happens:**
|
|
20
|
+
|
|
21
|
+
```
|
|
22
|
+
Your Agent (A) Partner's Agent (B)
|
|
23
|
+
| |
|
|
24
|
+
|--- presentCredential() --------->|
|
|
25
|
+
| |-- verifyTrust(credential)
|
|
26
|
+
| |-- signed? yes
|
|
27
|
+
| |-- procedures witnessed? 12 of 12
|
|
28
|
+
| |-- trust level? 2 (verified)
|
|
29
|
+
|<---------- GRANTED --------------|
|
|
30
|
+
| |
|
|
31
|
+
| (data exchange begins) |
|
|
32
|
+
| |
|
|
33
|
+
|<-- presentCredential() ----------|
|
|
34
|
+
|-- verifyTrust(credential) |
|
|
35
|
+
|-- signed? yes |
|
|
36
|
+
|-- trusted tenant? yes |
|
|
37
|
+
|------------ GRANTED ------------>|
|
|
38
|
+
| |
|
|
39
|
+
| (bidirectional trust) |
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
**What each side needs:**
|
|
43
|
+
|
|
44
|
+
1. Both agents install the SDK (`pip install swt3-ai` or `npm install @tenova/swt3-ai`)
|
|
45
|
+
2. Both configure `.swt3.yaml` with signing keys and trust boundaries
|
|
46
|
+
3. Both add each other's tenant to `trusted_tenants`
|
|
47
|
+
4. Exchange signing keys out-of-band (env vars, secrets manager, KMS)
|
|
48
|
+
5. Call `presentCredential()` / `verifyTrust()` before any data exchange
|
|
49
|
+
|
|
50
|
+
That's it. When you adopt the SWT3 witness layer, your partners and vendors must adopt it too in order to interact with your agents. Compliance becomes the connection protocol. Every agent in the mesh strengthens the network.
|
|
51
|
+
|
|
52
|
+
```yaml
|
|
53
|
+
# Your .swt3.yaml
|
|
54
|
+
trust_mesh:
|
|
55
|
+
mode: strict
|
|
56
|
+
min_trust_level: 2
|
|
57
|
+
require_signature: true
|
|
58
|
+
trusted_tenants: ["PARTNER_B_TENANT"]
|
|
59
|
+
|
|
60
|
+
# Partner's .swt3.yaml
|
|
61
|
+
trust_mesh:
|
|
62
|
+
mode: strict
|
|
63
|
+
min_trust_level: 2
|
|
64
|
+
require_signature: true
|
|
65
|
+
trusted_tenants: ["YOUR_TENANT"]
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
**Trust levels:**
|
|
69
|
+
|
|
70
|
+
| Level | Name | What It Means |
|
|
71
|
+
|-------|------|---------------|
|
|
72
|
+
| 1 | Basic | Valid credential, no signature verified |
|
|
73
|
+
| 2 | Verified | Credential + HMAC signature confirmed |
|
|
74
|
+
| 3 | Attested | Verified + hardware attestation + guardrails |
|
|
75
|
+
| 4 | Sovereign | Attested + clearing level 2+ |
|
|
76
|
+
|
|
77
|
+
Unsigned agents are capped at level 1. You decide the minimum level your agents accept. All verification is local. Zero cloud overhead. No data leaves until both sides clear the gate.
|
|
78
|
+
|
|
79
|
+
## Policy-as-Code (swt3.yaml)
|
|
80
|
+
|
|
81
|
+
Define your entire witnessing policy in a YAML file. No constructor parameters, no environment variable sprawl:
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
# Generate a config from a built-in profile
|
|
85
|
+
npx @tenova/swt3-mcp # reads .swt3.yaml automatically
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
```yaml
|
|
89
|
+
# .swt3.yaml
|
|
90
|
+
endpoint: https://sovereign.tenova.io
|
|
91
|
+
tenant_id: YOUR_TENANT
|
|
92
|
+
api_key_env: SWT3_API_KEY
|
|
93
|
+
clearing_level: 2
|
|
94
|
+
signing_key_env: SWT3_SIGNING_KEY
|
|
95
|
+
agent_id: my-agent
|
|
96
|
+
|
|
97
|
+
trust_mesh:
|
|
98
|
+
mode: strict
|
|
99
|
+
min_trust_level: 2
|
|
100
|
+
require_signature: true
|
|
101
|
+
|
|
102
|
+
mcp_policy:
|
|
103
|
+
require_witness: true
|
|
104
|
+
blocked_tools: ["shell_exec", "rm_rf"]
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
Layer configs with `extends:` for environment-specific overrides. Three built-in profiles ship with the SDK: `eu-ai-act-high-risk`, `nist-ai-rmf`, and `minimal`.
|
|
108
|
+
|
|
109
|
+
Validate your config:
|
|
110
|
+
|
|
111
|
+
```bash
|
|
112
|
+
npx swt3 doctor # 8 checks: YAML, env vars, profile, trust mesh
|
|
113
|
+
```
|
|
114
|
+
|
|
5
115
|
## Zero-config start
|
|
6
116
|
|
|
7
117
|
```bash
|
|
@@ -10,6 +120,19 @@ npx @tenova/swt3-mcp
|
|
|
10
120
|
|
|
11
121
|
That's it. No account, no API key, no configuration. The server starts in demo mode and mints local witness anchors immediately.
|
|
12
122
|
|
|
123
|
+
Ask your agent to witness an inference and you'll see:
|
|
124
|
+
|
|
125
|
+
```
|
|
126
|
+
Verdict: PASS
|
|
127
|
+
Anchor: SWT3-DEMO-LOCAL-AI-AIINF1-PASS-1779146826-ed28dc4c2698
|
|
128
|
+
Procedure: AI-INF.1
|
|
129
|
+
Model: gpt-4o
|
|
130
|
+
Clearing Level: 1
|
|
131
|
+
Fingerprint: ed28dc4c2698
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
That fingerprint is a SHA-256 hash of the tenant, procedure, factors, and timestamp. Anyone can recompute it independently. If it matches, the anchor is real. If a single bit changed, the hash breaks.
|
|
135
|
+
|
|
13
136
|
When you're ready to persist anchors to the SWT3 ledger, use the `signup` tool from within your agent conversation -- no need to leave your editor.
|
|
14
137
|
|
|
15
138
|
## Setup
|
|
@@ -68,49 +191,55 @@ claude mcp add swt3 -- npx @tenova/swt3-mcp
|
|
|
68
191
|
| **API key only** | `SWT3_API_KEY` | Tenant auto-resolved, anchors persisted |
|
|
69
192
|
| **Full config** | `SWT3_API_KEY` + `SWT3_TENANT_ID` | Explicit tenant, anchors persisted |
|
|
70
193
|
|
|
71
|
-
##
|
|
72
|
-
|
|
73
|
-
### witness_inference
|
|
194
|
+
## Regulatory Coverage
|
|
74
195
|
|
|
75
|
-
|
|
196
|
+
Every anchor maps to specific regulatory obligations:
|
|
76
197
|
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
198
|
+
- **EU AI Act**: Articles 9, 10, 12, 13, 14, 53, 72
|
|
199
|
+
- **NIST AI RMF**: GOVERN, MAP, MEASURE, MANAGE functions
|
|
200
|
+
- **OWASP Agentic Top 10**: Tool abuse, prompt injection, chain exploitation
|
|
201
|
+
- **CMMC**: Level 2 evidence automation for defense contractors
|
|
202
|
+
- **NIST 800-53**: SI-7 (integrity), AU-2/AU-3 (audit), AC controls
|
|
203
|
+
- **SR 11-7**: Model risk management for financial services
|
|
204
|
+
- **ISO 42001**: Annex A AI management controls
|
|
82
205
|
|
|
83
|
-
|
|
206
|
+
## Tools (18)
|
|
84
207
|
|
|
85
|
-
|
|
208
|
+
**Witnessing:**
|
|
209
|
+
`witness_inference` -- mint a cryptographic anchor for any AI inference. Prompt and response are hashed locally, never sent to the server. Returns verdict (PASS/FAIL), anchor token, and verification URL.
|
|
86
210
|
|
|
87
|
-
|
|
211
|
+
**Verification:**
|
|
212
|
+
`verify_anchor` -- verify the cryptographic integrity of an existing anchor.
|
|
88
213
|
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
214
|
+
**Trust Mesh:**
|
|
215
|
+
`verify_agent_trust` -- verify another agent's compliance credential.
|
|
216
|
+
`present_trust_credential` -- present your agent's credential for verification.
|
|
92
217
|
|
|
93
|
-
|
|
218
|
+
**Audit Sessions:**
|
|
219
|
+
`start_audit_session` -- begin a scoped audit session with a session ID.
|
|
220
|
+
`end_audit_session` -- close the session and get a summary with Merkle root.
|
|
94
221
|
|
|
95
|
-
|
|
222
|
+
**Agent Chains:**
|
|
223
|
+
`start_chain` -- initialize a multi-agent chain with a cycle ID.
|
|
224
|
+
`chain_handoff` -- record a handoff between agents in the chain.
|
|
225
|
+
`report_violation` -- report a policy violation with severity and category.
|
|
96
226
|
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
227
|
+
**Model Governance:**
|
|
228
|
+
`witness_model_integrity` -- witness model weight hashes for tamper detection.
|
|
229
|
+
`witness_adapter_stack` -- witness LoRA/adapter configurations.
|
|
100
230
|
|
|
101
|
-
|
|
231
|
+
**Skill Attestation:**
|
|
232
|
+
`attest_skill_manifest` -- witness which skills and plugins are loaded.
|
|
233
|
+
`attest_memory_context` -- witness which memory sources the agent accesses.
|
|
102
234
|
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
### signup
|
|
106
|
-
|
|
107
|
-
Get a signup link to create a free account. No credentials pass through the AI.
|
|
108
|
-
|
|
109
|
-
```
|
|
110
|
-
framework: "EU-AI-ACT" # optional (default: NIST-800-53)
|
|
111
|
-
```
|
|
235
|
+
**Authorization:**
|
|
236
|
+
`witness_authorization` -- witness pre-inference authorization decisions.
|
|
112
237
|
|
|
113
|
-
|
|
238
|
+
**Discovery:**
|
|
239
|
+
`list_procedures` -- browse the UCT procedure registry (151+ controls).
|
|
240
|
+
`suggest_procedures` -- get recommended procedures based on your use case.
|
|
241
|
+
`check_posture` -- check current tenant compliance posture.
|
|
242
|
+
`signup` -- create a free account without leaving your editor.
|
|
114
243
|
|
|
115
244
|
## Environment variables (optional)
|
|
116
245
|
|
|
@@ -143,4 +272,4 @@ Raw prompt and response text never leaves your machine at any clearing level.
|
|
|
143
272
|
|
|
144
273
|
Apache 2.0. Patent pending.
|
|
145
274
|
|
|
146
|
-
Built by [TeNova](https://tenova.io).
|
|
275
|
+
Built by [TeNova](https://tenova.io). Questions: engineering@tenovaai.com
|
package/dist/bin/swt3-mcp.js
CHANGED
|
@@ -15,8 +15,9 @@ import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"
|
|
|
15
15
|
import { loadConfig } from "../config.js";
|
|
16
16
|
import { createServer } from "../server.js";
|
|
17
17
|
try {
|
|
18
|
-
const
|
|
19
|
-
const
|
|
18
|
+
const bundle = loadConfig();
|
|
19
|
+
const config = bundle.config;
|
|
20
|
+
const server = createServer(config, bundle);
|
|
20
21
|
const transport = new StdioServerTransport();
|
|
21
22
|
if (config.demo) {
|
|
22
23
|
process.stderr.write("swt3-mcp: running in demo mode (local-only anchors)\n" +
|
package/dist/bin/swt3-mcp.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"swt3-mcp.js","sourceRoot":"","sources":["../../src/bin/swt3-mcp.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,IAAI,CAAC;IACH,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"swt3-mcp.js","sourceRoot":"","sources":["../../src/bin/swt3-mcp.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,IAAI,CAAC;IACH,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAC7B,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5C,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAE7C,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QAChB,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,uDAAuD;YACvD,0DAA0D,CAC3D,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAClC,CAAC;AAAC,OAAO,GAAG,EAAE,CAAC;IACb,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,aAAc,GAAa,CAAC,OAAO,IAAI,CAAC,CAAC;IAC9D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC"}
|
package/dist/chain-verifier.d.ts
CHANGED
package/dist/chain-verifier.js
CHANGED
package/dist/config.d.ts
CHANGED
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* SWT3 MCP Server
|
|
2
|
+
* SWT3 MCP Server -- Configuration.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
4
|
+
* Priority: env vars > YAML file > defaults
|
|
5
|
+
*
|
|
6
|
+
* Four modes:
|
|
7
|
+
* 1. Demo mode (no env vars, no YAML) -- local-only anchors, no account needed
|
|
8
|
+
* 2. YAML config (SWT3_CONFIG_FILE) -- one file governs MCP + SDK
|
|
9
|
+
* 3. API key only -- tenant auto-resolved from first API call
|
|
10
|
+
* 4. Full config -- API key + explicit tenant ID
|
|
8
11
|
*/
|
|
12
|
+
import type { DensityPolicy } from "./density-policy.js";
|
|
9
13
|
export interface McpConfig {
|
|
10
14
|
endpoint: string;
|
|
11
15
|
apiKey: string;
|
|
@@ -22,6 +26,44 @@ export interface McpConfig {
|
|
|
22
26
|
redisStream: string;
|
|
23
27
|
/** Maximum seconds between consecutive anchors in a chain. */
|
|
24
28
|
maxChainGapSeconds: number;
|
|
29
|
+
/** SHA-256 hash of the config file (if loaded from YAML). */
|
|
30
|
+
configHash?: string;
|
|
31
|
+
}
|
|
32
|
+
export interface YamlTrustMesh {
|
|
33
|
+
trustedTenants: string[];
|
|
34
|
+
deniedAgents: string[];
|
|
35
|
+
deniedTenants: string[];
|
|
36
|
+
}
|
|
37
|
+
export interface McpToolPolicy {
|
|
38
|
+
/** Glob patterns for tools that MUST be witnessed. */
|
|
39
|
+
witnessedTools: string[];
|
|
40
|
+
/** Glob patterns for tools exempt from witnessing. */
|
|
41
|
+
exemptTools: string[];
|
|
42
|
+
/** Minimum trust level required before executing any MCP tool. */
|
|
43
|
+
requireTrustLevel: number;
|
|
44
|
+
/** Auto-witness all MCP tool calls without explicit wrapping. */
|
|
45
|
+
autoWitness: boolean;
|
|
46
|
+
/** Block tool execution if witnessing fails (true) or log-only (false). */
|
|
47
|
+
blockOnFailure: boolean;
|
|
48
|
+
/** Rate limit: "N/Xs" format (e.g., "4/30s"). */
|
|
49
|
+
maxVelocity?: string;
|
|
50
|
+
/** Maximum sequential dependent tool calls. */
|
|
51
|
+
maxChainDepth?: number;
|
|
52
|
+
/** Only these tools are permitted. Empty = all. */
|
|
53
|
+
toolAllowlist?: string[];
|
|
54
|
+
/** These tools are always blocked. */
|
|
55
|
+
toolBlocklist?: string[];
|
|
56
|
+
/** On enforcement error: true = block, false = log. Default true. */
|
|
57
|
+
failSecure?: boolean;
|
|
25
58
|
}
|
|
26
|
-
export
|
|
59
|
+
export interface McpConfigBundle {
|
|
60
|
+
config: McpConfig;
|
|
61
|
+
densityPolicy: DensityPolicy | null;
|
|
62
|
+
trustMesh: YamlTrustMesh | null;
|
|
63
|
+
mcpPolicy: McpToolPolicy | null;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Load configuration. Checks SWT3_CONFIG_FILE first, falls back to env vars.
|
|
67
|
+
*/
|
|
68
|
+
export declare function loadConfig(): McpConfigBundle;
|
|
27
69
|
//# sourceMappingURL=config.d.ts.map
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,OAAO,CAAC;IACd,kEAAkE;IAClE,WAAW,EAAE,OAAO,CAAC;IACrB,kEAAkE;IAClE,QAAQ,EAAE,MAAM,CAAC;IACjB,gDAAgD;IAChD,WAAW,EAAE,MAAM,CAAC;IACpB,8DAA8D;IAC9D,kBAAkB,EAAE,MAAM,CAAC;IAC3B,6DAA6D;IAC7D,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC5B,sDAAsD;IACtD,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,sDAAsD;IACtD,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,kEAAkE;IAClE,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iEAAiE;IACjE,WAAW,EAAE,OAAO,CAAC;IACrB,2EAA2E;IAC3E,cAAc,EAAE,OAAO,CAAC;IACxB,iDAAiD;IACjD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+CAA+C;IAC/C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mDAAmD;IACnD,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,sCAAsC;IACtC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,qEAAqE;IACrE,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,SAAS,CAAC;IAClB,aAAa,EAAE,aAAa,GAAG,IAAI,CAAC;IACpC,SAAS,EAAE,aAAa,GAAG,IAAI,CAAC;IAChC,SAAS,EAAE,aAAa,GAAG,IAAI,CAAC;CACjC;AAwID;;GAEG;AACH,wBAAgB,UAAU,IAAI,eAAe,CAmD5C"}
|
package/dist/config.js
CHANGED
|
@@ -1,12 +1,138 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* SWT3 MCP Server
|
|
2
|
+
* SWT3 MCP Server -- Configuration.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
4
|
+
* Priority: env vars > YAML file > defaults
|
|
5
|
+
*
|
|
6
|
+
* Four modes:
|
|
7
|
+
* 1. Demo mode (no env vars, no YAML) -- local-only anchors, no account needed
|
|
8
|
+
* 2. YAML config (SWT3_CONFIG_FILE) -- one file governs MCP + SDK
|
|
9
|
+
* 3. API key only -- tenant auto-resolved from first API call
|
|
10
|
+
* 4. Full config -- API key + explicit tenant ID
|
|
11
|
+
*/
|
|
12
|
+
import { readFileSync, existsSync } from "node:fs";
|
|
13
|
+
function parseYaml(content) {
|
|
14
|
+
try {
|
|
15
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
16
|
+
const yamlMod = require("yaml");
|
|
17
|
+
return yamlMod.parse(content);
|
|
18
|
+
}
|
|
19
|
+
catch {
|
|
20
|
+
throw new Error("The 'yaml' package is required for YAML config. Install it with: npm install yaml");
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Load config from YAML file + env var overrides.
|
|
25
|
+
* Returns the full bundle: McpConfig + DensityPolicy + TrustMesh.
|
|
26
|
+
*/
|
|
27
|
+
function loadFromYaml(yamlPath) {
|
|
28
|
+
if (!existsSync(yamlPath)) {
|
|
29
|
+
throw new Error(`SWT3 config file not found: ${yamlPath}`);
|
|
30
|
+
}
|
|
31
|
+
const content = readFileSync(yamlPath, "utf-8");
|
|
32
|
+
const { createHash } = require("node:crypto");
|
|
33
|
+
const configHash = createHash("sha256").update(content, "utf-8").digest("hex");
|
|
34
|
+
const raw = parseYaml(content);
|
|
35
|
+
if (!raw || typeof raw !== "object") {
|
|
36
|
+
throw new Error("Invalid config file: expected a YAML mapping");
|
|
37
|
+
}
|
|
38
|
+
// Resolve _env fields
|
|
39
|
+
let apiKey = raw.api_key || "";
|
|
40
|
+
if (raw.api_key_env) {
|
|
41
|
+
apiKey = process.env[raw.api_key_env] || "";
|
|
42
|
+
}
|
|
43
|
+
let signingKey = raw.signing_key || undefined;
|
|
44
|
+
if (raw.signing_key_env) {
|
|
45
|
+
signingKey = process.env[raw.signing_key_env] || undefined;
|
|
46
|
+
}
|
|
47
|
+
// Extract sections
|
|
48
|
+
const trustMeshRaw = raw.trust_mesh;
|
|
49
|
+
const densityRaw = raw.density_policy;
|
|
50
|
+
const mcpPolicyRaw = raw.mcp_policy;
|
|
51
|
+
// Build McpConfig (env vars override YAML)
|
|
52
|
+
const endpoint = process.env.SWT3_ENDPOINT || raw.endpoint || "https://sovereign.tenova.io";
|
|
53
|
+
apiKey = process.env.SWT3_API_KEY || apiKey;
|
|
54
|
+
const tenantId = process.env.SWT3_TENANT_ID || raw.tenant_id || "";
|
|
55
|
+
const agentId = process.env.SWT3_AGENT_ID || raw.agent_id || undefined;
|
|
56
|
+
signingKey = process.env.SWT3_SIGNING_KEY || signingKey;
|
|
57
|
+
const demo = !apiKey;
|
|
58
|
+
if (apiKey && !apiKey.startsWith("axm_")) {
|
|
59
|
+
throw new Error("API key must start with 'axm_'");
|
|
60
|
+
}
|
|
61
|
+
const rawLevel = process.env.SWT3_CLEARING_LEVEL ?? String(raw.clearing_level ?? 1);
|
|
62
|
+
let clearingLevel = 1;
|
|
63
|
+
const parsed = parseInt(rawLevel, 10);
|
|
64
|
+
if ([0, 1, 2, 3].includes(parsed)) {
|
|
65
|
+
clearingLevel = parsed;
|
|
66
|
+
}
|
|
67
|
+
// Chain verify: env > trust_mesh.mode === "strict" > false
|
|
68
|
+
const chainVerifyEnv = process.env.SWT3_CHAIN_VERIFY;
|
|
69
|
+
const meshMode = trustMeshRaw?.mode;
|
|
70
|
+
const chainVerify = chainVerifyEnv
|
|
71
|
+
? chainVerifyEnv === "true"
|
|
72
|
+
: meshMode === "strict";
|
|
73
|
+
const maxChainGapSeconds = parseInt(process.env.SWT3_MAX_CHAIN_GAP
|
|
74
|
+
|| String(densityRaw?.max_chain_gap_seconds ?? trustMeshRaw?.freshness_window ?? 60), 10);
|
|
75
|
+
const config = {
|
|
76
|
+
endpoint: endpoint.replace(/\/+$/, ""),
|
|
77
|
+
apiKey: demo ? "axm_demo_local" : apiKey,
|
|
78
|
+
tenantId: demo ? "DEMO_LOCAL" : tenantId,
|
|
79
|
+
clearingLevel,
|
|
80
|
+
agentId,
|
|
81
|
+
signingKey,
|
|
82
|
+
demo,
|
|
83
|
+
chainVerify: demo ? false : chainVerify,
|
|
84
|
+
redisUrl: process.env.SWT3_REDIS_URL || "redis://localhost:6379",
|
|
85
|
+
redisStream: process.env.SWT3_REDIS_STREAM || "swt3:anchors",
|
|
86
|
+
maxChainGapSeconds,
|
|
87
|
+
configHash,
|
|
88
|
+
};
|
|
89
|
+
// Density policy from YAML
|
|
90
|
+
let densityPolicy = null;
|
|
91
|
+
if (densityRaw) {
|
|
92
|
+
densityPolicy = {
|
|
93
|
+
min_anchors_per_1000_tokens: densityRaw.min_anchors_per_1000_tokens ?? 1,
|
|
94
|
+
required_providers: densityRaw.required_providers ?? [],
|
|
95
|
+
max_chain_gap_seconds: densityRaw.max_chain_gap_seconds ?? 60,
|
|
96
|
+
require_signing_key: densityRaw.require_signing_key ?? false,
|
|
97
|
+
min_trust_level: densityRaw.min_trust_level ?? 1,
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
// Trust mesh from YAML
|
|
101
|
+
let trustMesh = null;
|
|
102
|
+
if (trustMeshRaw) {
|
|
103
|
+
trustMesh = {
|
|
104
|
+
trustedTenants: trustMeshRaw.trusted_tenants ?? [],
|
|
105
|
+
deniedAgents: trustMeshRaw.deny_agents ?? [],
|
|
106
|
+
deniedTenants: trustMeshRaw.deny_tenants ?? [],
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
// MCP policy from YAML
|
|
110
|
+
let mcpPolicy = null;
|
|
111
|
+
if (mcpPolicyRaw) {
|
|
112
|
+
mcpPolicy = {
|
|
113
|
+
witnessedTools: mcpPolicyRaw.witnessed_tools ?? [],
|
|
114
|
+
exemptTools: mcpPolicyRaw.exempt_tools ?? [],
|
|
115
|
+
requireTrustLevel: mcpPolicyRaw.require_trust_level ?? 0,
|
|
116
|
+
autoWitness: mcpPolicyRaw.auto_witness ?? true,
|
|
117
|
+
blockOnFailure: mcpPolicyRaw.block_on_failure ?? false,
|
|
118
|
+
maxVelocity: mcpPolicyRaw.max_velocity,
|
|
119
|
+
maxChainDepth: mcpPolicyRaw.max_chain_depth,
|
|
120
|
+
toolAllowlist: mcpPolicyRaw.tool_allowlist ?? [],
|
|
121
|
+
toolBlocklist: mcpPolicyRaw.tool_blocklist ?? [],
|
|
122
|
+
failSecure: mcpPolicyRaw.fail_secure ?? true,
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
return { config, densityPolicy, trustMesh, mcpPolicy };
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Load configuration. Checks SWT3_CONFIG_FILE first, falls back to env vars.
|
|
8
129
|
*/
|
|
9
130
|
export function loadConfig() {
|
|
131
|
+
const yamlPath = process.env.SWT3_CONFIG_FILE;
|
|
132
|
+
if (yamlPath) {
|
|
133
|
+
return loadFromYaml(yamlPath);
|
|
134
|
+
}
|
|
135
|
+
// Legacy env-var-only path
|
|
10
136
|
const endpoint = process.env.SWT3_ENDPOINT || "https://sovereign.tenova.io";
|
|
11
137
|
const apiKey = process.env.SWT3_API_KEY || "";
|
|
12
138
|
const tenantId = process.env.SWT3_TENANT_ID || "";
|
|
@@ -17,9 +143,7 @@ export function loadConfig() {
|
|
|
17
143
|
const redisUrl = process.env.SWT3_REDIS_URL || "redis://localhost:6379";
|
|
18
144
|
const redisStream = process.env.SWT3_REDIS_STREAM || "swt3:anchors";
|
|
19
145
|
const maxChainGapSeconds = parseInt(process.env.SWT3_MAX_CHAIN_GAP || "60", 10);
|
|
20
|
-
// Demo mode: no API key set
|
|
21
146
|
const demo = !apiKey;
|
|
22
|
-
// Validate API key format if provided
|
|
23
147
|
if (apiKey && !apiKey.startsWith("axm_")) {
|
|
24
148
|
throw new Error("SWT3_API_KEY must start with 'axm_'");
|
|
25
149
|
}
|
|
@@ -32,17 +156,22 @@ export function loadConfig() {
|
|
|
32
156
|
clearingLevel = parsed;
|
|
33
157
|
}
|
|
34
158
|
return {
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
159
|
+
config: {
|
|
160
|
+
endpoint: endpoint.replace(/\/+$/, ""),
|
|
161
|
+
apiKey: demo ? "axm_demo_local" : apiKey,
|
|
162
|
+
tenantId: demo ? "DEMO_LOCAL" : tenantId,
|
|
163
|
+
clearingLevel,
|
|
164
|
+
agentId,
|
|
165
|
+
signingKey,
|
|
166
|
+
demo,
|
|
167
|
+
chainVerify: demo ? false : chainVerify,
|
|
168
|
+
redisUrl,
|
|
169
|
+
redisStream,
|
|
170
|
+
maxChainGapSeconds,
|
|
171
|
+
},
|
|
172
|
+
densityPolicy: null,
|
|
173
|
+
trustMesh: null,
|
|
174
|
+
mcpPolicy: null,
|
|
46
175
|
};
|
|
47
176
|
}
|
|
48
177
|
//# sourceMappingURL=config.js.map
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/density-policy.d.ts
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* requirements, chain gap limits, and signing enforcement. Agents that
|
|
6
6
|
* fail policy checks are denied tool execution by the chain verifier.
|
|
7
7
|
*
|
|
8
|
-
* Patent
|
|
8
|
+
* Patent pending.
|
|
9
9
|
*/
|
|
10
10
|
export interface DensityPolicy {
|
|
11
11
|
/** Minimum anchors per 1,000 tokens generated. Default: 1 */
|
|
@@ -42,7 +42,7 @@ export interface ChainAnchor {
|
|
|
42
42
|
* Load density policy from environment.
|
|
43
43
|
* Priority: SWT3_DENSITY_POLICY (inline JSON) > SWT3_DENSITY_POLICY_FILE (path) > defaults
|
|
44
44
|
*/
|
|
45
|
-
export declare function loadDensityPolicy(): DensityPolicy;
|
|
45
|
+
export declare function loadDensityPolicy(yamlPolicy?: DensityPolicy): DensityPolicy;
|
|
46
46
|
/**
|
|
47
47
|
* Evaluate an anchor chain against the density policy.
|
|
48
48
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"density-policy.d.ts","sourceRoot":"","sources":["../src/density-policy.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,MAAM,WAAW,aAAa;IAC5B,6DAA6D;IAC7D,2BAA2B,EAAE,MAAM,CAAC;IACpC,qFAAqF;IACrF,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,0EAA0E;IAC1E,qBAAqB,EAAE,MAAM,CAAC;IAC9B,oEAAoE;IACpE,mBAAmB,EAAE,OAAO,CAAC;IAC7B,+DAA+D;IAC/D,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,eAAe,EAAE,CAAC;CAC/B;AAED,yDAAyD;AACzD,MAAM,WAAW,WAAW;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAcD;;;GAGG;AACH,wBAAgB,iBAAiB,
|
|
1
|
+
{"version":3,"file":"density-policy.d.ts","sourceRoot":"","sources":["../src/density-policy.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,MAAM,WAAW,aAAa;IAC5B,6DAA6D;IAC7D,2BAA2B,EAAE,MAAM,CAAC;IACpC,qFAAqF;IACrF,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,0EAA0E;IAC1E,qBAAqB,EAAE,MAAM,CAAC;IAC9B,oEAAoE;IACpE,mBAAmB,EAAE,OAAO,CAAC;IAC7B,+DAA+D;IAC/D,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,eAAe,EAAE,CAAC;CAC/B;AAED,yDAAyD;AACzD,MAAM,WAAW,WAAW;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAcD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,CAAC,EAAE,aAAa,GAAG,aAAa,CAyB3E;AAID;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,WAAW,EAAE,EACtB,eAAe,CAAC,EAAE,MAAM,EACxB,eAAe,CAAC,EAAE,MAAM,GACvB,YAAY,CA0Ed"}
|
package/dist/density-policy.js
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* requirements, chain gap limits, and signing enforcement. Agents that
|
|
6
6
|
* fail policy checks are denied tool execution by the chain verifier.
|
|
7
7
|
*
|
|
8
|
-
* Patent
|
|
8
|
+
* Patent pending.
|
|
9
9
|
*/
|
|
10
10
|
import { readFileSync } from "node:fs";
|
|
11
11
|
// ── Defaults ──────────────────────────────────────────────────────────
|
|
@@ -21,7 +21,11 @@ const DEFAULT_POLICY = {
|
|
|
21
21
|
* Load density policy from environment.
|
|
22
22
|
* Priority: SWT3_DENSITY_POLICY (inline JSON) > SWT3_DENSITY_POLICY_FILE (path) > defaults
|
|
23
23
|
*/
|
|
24
|
-
export function loadDensityPolicy() {
|
|
24
|
+
export function loadDensityPolicy(yamlPolicy) {
|
|
25
|
+
// YAML-provided policy has second priority (after inline env var)
|
|
26
|
+
if (yamlPolicy && !process.env.SWT3_DENSITY_POLICY) {
|
|
27
|
+
return { ...DEFAULT_POLICY, ...yamlPolicy };
|
|
28
|
+
}
|
|
25
29
|
const inline = process.env.SWT3_DENSITY_POLICY;
|
|
26
30
|
if (inline) {
|
|
27
31
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"density-policy.js","sourceRoot":"","sources":["../src/density-policy.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAuCvC,yEAAyE;AAEzE,MAAM,cAAc,GAAkB;IACpC,2BAA2B,EAAE,CAAC;IAC9B,kBAAkB,EAAE,EAAE;IACtB,qBAAqB,EAAE,EAAE;IACzB,mBAAmB,EAAE,KAAK;IAC1B,eAAe,EAAE,CAAC;CACnB,CAAC;AAEF,yEAAyE;AAEzE;;;GAGG;AACH,MAAM,UAAU,iBAAiB;
|
|
1
|
+
{"version":3,"file":"density-policy.js","sourceRoot":"","sources":["../src/density-policy.ts"],"names":[],"mappings":"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"}
|
package/dist/redis-reader.d.ts
CHANGED
package/dist/redis-reader.js
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
* - In-memory index keyed by agent_id and cycle_id
|
|
12
12
|
* - TTL eviction (1 hour) + max entries (10,000 LRU)
|
|
13
13
|
*
|
|
14
|
-
* Patent
|
|
14
|
+
* Patent pending.
|
|
15
15
|
*/
|
|
16
16
|
import { hostname } from "node:os";
|
|
17
17
|
// ── Constants ──────────────────────────────────────────��──────────────
|
package/dist/server.d.ts
CHANGED
|
@@ -6,6 +6,6 @@
|
|
|
6
6
|
* and full config (API key + tenant ID).
|
|
7
7
|
*/
|
|
8
8
|
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
9
|
-
import type { McpConfig } from "./config.js";
|
|
10
|
-
export declare function createServer(config: McpConfig): McpServer;
|
|
9
|
+
import type { McpConfig, McpConfigBundle } from "./config.js";
|
|
10
|
+
export declare function createServer(config: McpConfig, bundle?: McpConfigBundle): McpServer;
|
|
11
11
|
//# sourceMappingURL=server.d.ts.map
|
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAiB,MAAM,aAAa,CAAC;AAmH7E,wBAAgB,YAAY,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,eAAe,GAAG,SAAS,CAoqBnF"}
|
package/dist/server.js
CHANGED
|
@@ -30,10 +30,86 @@ import { verifyAnchorChain } from "./chain-verifier.js";
|
|
|
30
30
|
import { loadDensityPolicy } from "./density-policy.js";
|
|
31
31
|
import { startRedisReader, stopRedisReader, getReaderState } from "./redis-reader.js";
|
|
32
32
|
import { mintFingerprint, timestampMs, signPayload } from "./fingerprint.js";
|
|
33
|
-
|
|
33
|
+
/**
|
|
34
|
+
* Match a tool name against a glob pattern list.
|
|
35
|
+
* Supports * (any chars) and ? (single char).
|
|
36
|
+
*/
|
|
37
|
+
function matchesToolPattern(toolName, patterns) {
|
|
38
|
+
for (const pattern of patterns) {
|
|
39
|
+
const regex = new RegExp("^" + pattern.replace(/[.+^${}()|[\]\\]/g, "\\$&")
|
|
40
|
+
.replace(/\*/g, ".*")
|
|
41
|
+
.replace(/\?/g, ".") + "$");
|
|
42
|
+
if (regex.test(toolName))
|
|
43
|
+
return true;
|
|
44
|
+
}
|
|
45
|
+
return false;
|
|
46
|
+
}
|
|
47
|
+
function initChainDensity(policy) {
|
|
48
|
+
if (!policy.maxVelocity && policy.maxChainDepth === undefined &&
|
|
49
|
+
!policy.toolAllowlist?.length && !policy.toolBlocklist?.length) {
|
|
50
|
+
return null;
|
|
51
|
+
}
|
|
52
|
+
let velocityLimit = 0, velocityWindowMs = 0;
|
|
53
|
+
if (policy.maxVelocity) {
|
|
54
|
+
const parts = policy.maxVelocity.split("/");
|
|
55
|
+
velocityLimit = parseInt(parts[0], 10);
|
|
56
|
+
velocityWindowMs = parseInt(parts[1].replace("s", ""), 10) * 1000;
|
|
57
|
+
}
|
|
58
|
+
const toRegex = (p) => new RegExp("^" + p.replace(/[.+^${}()|[\]\\]/g, "\\$&").replace(/\*/g, ".*").replace(/\?/g, ".") + "$");
|
|
59
|
+
return {
|
|
60
|
+
velocityWindow: [],
|
|
61
|
+
velocityLimit,
|
|
62
|
+
velocityWindowMs,
|
|
63
|
+
chainDepth: 0,
|
|
64
|
+
maxChainDepth: policy.maxChainDepth ?? Infinity,
|
|
65
|
+
lastToolName: null,
|
|
66
|
+
blockPatterns: (policy.toolBlocklist ?? []).map(toRegex),
|
|
67
|
+
allowPatterns: policy.toolAllowlist?.length ? policy.toolAllowlist.map(toRegex) : null,
|
|
68
|
+
failSecure: policy.failSecure ?? true,
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
function checkChainDensity(state, toolName) {
|
|
72
|
+
const now = Date.now();
|
|
73
|
+
// Blocklist
|
|
74
|
+
for (const p of state.blockPatterns) {
|
|
75
|
+
if (p.test(toolName))
|
|
76
|
+
return `Tool "${toolName}" is on the blocklist`;
|
|
77
|
+
}
|
|
78
|
+
// Allowlist
|
|
79
|
+
if (state.allowPatterns && !state.allowPatterns.some((p) => p.test(toolName))) {
|
|
80
|
+
return `Tool "${toolName}" is not on the allowlist`;
|
|
81
|
+
}
|
|
82
|
+
// Velocity
|
|
83
|
+
if (state.velocityLimit > 0) {
|
|
84
|
+
const cutoff = now - state.velocityWindowMs;
|
|
85
|
+
while (state.velocityWindow.length > 0 && state.velocityWindow[0] <= cutoff) {
|
|
86
|
+
state.velocityWindow.shift();
|
|
87
|
+
}
|
|
88
|
+
if (state.velocityWindow.length >= state.velocityLimit) {
|
|
89
|
+
if (state.failSecure)
|
|
90
|
+
return `Rate limit exceeded: ${state.velocityLimit} calls per ${state.velocityWindowMs / 1000}s`;
|
|
91
|
+
}
|
|
92
|
+
state.velocityWindow.push(now);
|
|
93
|
+
}
|
|
94
|
+
// Depth
|
|
95
|
+
if (state.maxChainDepth < Infinity) {
|
|
96
|
+
if (toolName !== state.lastToolName && state.lastToolName !== null)
|
|
97
|
+
state.chainDepth = 0;
|
|
98
|
+
state.chainDepth++;
|
|
99
|
+
state.lastToolName = toolName;
|
|
100
|
+
if (state.chainDepth > state.maxChainDepth) {
|
|
101
|
+
if (state.failSecure)
|
|
102
|
+
return `Chain depth ${state.chainDepth} exceeds max ${state.maxChainDepth}`;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
return null;
|
|
106
|
+
}
|
|
107
|
+
export function createServer(config, bundle) {
|
|
34
108
|
const client = new AxiomClient(config);
|
|
35
|
-
const sessionState = createSessionState();
|
|
36
|
-
const densityPolicy = loadDensityPolicy();
|
|
109
|
+
const sessionState = createSessionState(bundle?.trustMesh?.trustedTenants, bundle?.trustMesh?.deniedAgents);
|
|
110
|
+
const densityPolicy = bundle?.densityPolicy ?? loadDensityPolicy();
|
|
111
|
+
const mcpPolicy = bundle?.mcpPolicy ?? null;
|
|
112
|
+
const chainDensity = mcpPolicy ? initChainDensity(mcpPolicy) : null;
|
|
37
113
|
// Start Redis reader if chain verification is enabled
|
|
38
114
|
if (config.chainVerify) {
|
|
39
115
|
startRedisReader({ redisUrl: config.redisUrl, streamName: config.redisStream })
|
|
@@ -93,6 +169,42 @@ export function createServer(config) {
|
|
|
93
169
|
`linked by agent_id or cycle_id with no gaps exceeding ${config.maxChainGapSeconds}s.`,
|
|
94
170
|
].join("\n");
|
|
95
171
|
}
|
|
172
|
+
/**
|
|
173
|
+
* MCP tool policy gate. Checks if a tool name requires witnessing per the
|
|
174
|
+
* mcp_policy section of the YAML config. Returns:
|
|
175
|
+
* - "witness": tool must be witnessed (auto_witness or matched pattern)
|
|
176
|
+
* - "exempt": tool is explicitly exempt
|
|
177
|
+
* - "block": tool blocked due to trust level or failure policy
|
|
178
|
+
* - null: no mcp_policy configured, pass through
|
|
179
|
+
*/
|
|
180
|
+
function toolPolicyGate(toolName) {
|
|
181
|
+
if (!mcpPolicy)
|
|
182
|
+
return null;
|
|
183
|
+
// Exempt tools always pass through unwatched
|
|
184
|
+
if (mcpPolicy.exemptTools.length > 0 && matchesToolPattern(toolName, mcpPolicy.exemptTools)) {
|
|
185
|
+
return "exempt";
|
|
186
|
+
}
|
|
187
|
+
// Check if tool matches witnessed patterns
|
|
188
|
+
const isWitnessed = mcpPolicy.witnessedTools.length === 0
|
|
189
|
+
|| matchesToolPattern(toolName, mcpPolicy.witnessedTools);
|
|
190
|
+
if (!isWitnessed)
|
|
191
|
+
return "exempt";
|
|
192
|
+
// Trust level gate: use real verified trust level, fall back to heuristic
|
|
193
|
+
if (mcpPolicy.requireTrustLevel > 0) {
|
|
194
|
+
const sessionTrust = sessionState.verifiedTrustLevel
|
|
195
|
+
?? (sessionState.activeAuditSession ? 2 : (config.signingKey ? 1 : 0));
|
|
196
|
+
if (sessionTrust < mcpPolicy.requireTrustLevel) {
|
|
197
|
+
return "block";
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
// Chain density enforcement
|
|
201
|
+
if (chainDensity) {
|
|
202
|
+
const violation = checkChainDensity(chainDensity, toolName);
|
|
203
|
+
if (violation)
|
|
204
|
+
return "block";
|
|
205
|
+
}
|
|
206
|
+
return mcpPolicy.autoWitness ? "witness" : "exempt";
|
|
207
|
+
}
|
|
96
208
|
const server = new McpServer({
|
|
97
209
|
name: "swt3-mcp",
|
|
98
210
|
version: "0.1.0",
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
package/dist/state.d.ts
CHANGED
|
@@ -20,8 +20,10 @@ export interface SessionState {
|
|
|
20
20
|
trustedTenants: Set<string>;
|
|
21
21
|
/** Agent IDs denied for this session. */
|
|
22
22
|
deniedAgents: Set<string>;
|
|
23
|
+
/** Last verified trust level from verify_agent_trust (null if no verification performed). */
|
|
24
|
+
verifiedTrustLevel: number | null;
|
|
23
25
|
/** Redis reader state (null if not configured or unavailable). */
|
|
24
26
|
redisReader: RedisReaderState | null;
|
|
25
27
|
}
|
|
26
|
-
export declare function createSessionState(): SessionState;
|
|
28
|
+
export declare function createSessionState(yamlTrustedTenants?: string[], yamlDeniedAgents?: string[]): SessionState;
|
|
27
29
|
//# sourceMappingURL=state.d.ts.map
|
package/dist/state.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,MAAM,WAAW,YAAY;IAC3B,kBAAkB,EAAE;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,mBAAmB,EAAE,MAAM,EAAE,CAAC;KAC/B,GAAG,IAAI,CAAC;IACT,WAAW,EAAE;QACX,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;KACnB,GAAG,IAAI,CAAC;IACT,qEAAqE;IACrE,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC5B,yCAAyC;IACzC,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1B,kEAAkE;IAClE,WAAW,EAAE,gBAAgB,GAAG,IAAI,CAAC;CACtC;AAED,wBAAgB,kBAAkB,
|
|
1
|
+
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,MAAM,WAAW,YAAY;IAC3B,kBAAkB,EAAE;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,mBAAmB,EAAE,MAAM,EAAE,CAAC;KAC/B,GAAG,IAAI,CAAC;IACT,WAAW,EAAE;QACX,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;KACnB,GAAG,IAAI,CAAC;IACT,qEAAqE;IACrE,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC5B,yCAAyC;IACzC,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1B,6FAA6F;IAC7F,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,kEAAkE;IAClE,WAAW,EAAE,gBAAgB,GAAG,IAAI,CAAC;CACtC;AAED,wBAAgB,kBAAkB,CAChC,kBAAkB,CAAC,EAAE,MAAM,EAAE,EAC7B,gBAAgB,CAAC,EAAE,MAAM,EAAE,GAC1B,YAAY,CAad"}
|
package/dist/state.js
CHANGED
|
@@ -4,14 +4,16 @@
|
|
|
4
4
|
* Ephemeral in-memory state for audit sessions and chain tracking.
|
|
5
5
|
* Lost on restart by design -- sessions are conversation-scoped.
|
|
6
6
|
*/
|
|
7
|
-
export function createSessionState() {
|
|
8
|
-
// Seed trusted tenants from env var (comma-separated)
|
|
7
|
+
export function createSessionState(yamlTrustedTenants, yamlDeniedAgents) {
|
|
8
|
+
// Seed trusted tenants from env var (comma-separated) + YAML
|
|
9
9
|
const envTrusted = process.env.SWT3_TRUSTED_TENANTS?.split(",").map((s) => s.trim()).filter(Boolean) ?? [];
|
|
10
|
+
const allTrusted = [...envTrusted, ...(yamlTrustedTenants ?? [])];
|
|
10
11
|
return {
|
|
11
12
|
activeAuditSession: null,
|
|
12
13
|
activeChain: null,
|
|
13
|
-
trustedTenants: new Set(
|
|
14
|
-
deniedAgents: new Set(),
|
|
14
|
+
trustedTenants: new Set(allTrusted),
|
|
15
|
+
deniedAgents: new Set(yamlDeniedAgents ?? []),
|
|
16
|
+
verifiedTrustLevel: null,
|
|
15
17
|
redisReader: null,
|
|
16
18
|
};
|
|
17
19
|
}
|
package/dist/state.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.js","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAyBH,MAAM,UAAU,kBAAkB,CAChC,kBAA6B,EAC7B,gBAA2B;IAE3B,6DAA6D;IAC7D,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IAC3G,MAAM,UAAU,GAAG,CAAC,GAAG,UAAU,EAAE,GAAG,CAAC,kBAAkB,IAAI,EAAE,CAAC,CAAC,CAAC;IAElE,OAAO;QACL,kBAAkB,EAAE,IAAI;QACxB,WAAW,EAAE,IAAI;QACjB,cAAc,EAAE,IAAI,GAAG,CAAC,UAAU,CAAC;QACnC,YAAY,EAAE,IAAI,GAAG,CAAC,gBAAgB,IAAI,EAAE,CAAC;QAC7C,kBAAkB,EAAE,IAAI;QACxB,WAAW,EAAE,IAAI;KAClB,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trust.d.ts","sourceRoot":"","sources":["../../src/tools/trust.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAkB,MAAM,cAAc,CAAC;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAsFhD,UAAU,UAAU;IAClB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,cAAc,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC/B,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,WAAW;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAID,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,WAAW,EACnB,KAAK,EAAE,YAAY,GAClB,OAAO,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"trust.d.ts","sourceRoot":"","sources":["../../src/tools/trust.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAkB,MAAM,cAAc,CAAC;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAsFhD,UAAU,UAAU;IAClB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,cAAc,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC/B,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,WAAW;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAID,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,WAAW,EACnB,KAAK,EAAE,YAAY,GAClB,OAAO,CAAC,MAAM,CAAC,CAiIjB;AAED,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,WAAW,EACjB,MAAM,EAAE,SAAS,GAChB,MAAM,CA0BR"}
|
package/dist/tools/trust.js
CHANGED
|
@@ -65,6 +65,10 @@ function verifyCounterpart(args, config, state) {
|
|
|
65
65
|
export async function handleVerifyAgentTrust(args, config, client, state) {
|
|
66
66
|
const clearingLevel = args.clearing_level ?? config.clearingLevel;
|
|
67
67
|
const result = verifyCounterpart(args, config, state);
|
|
68
|
+
// Store verified trust level for toolPolicyGate to use
|
|
69
|
+
if (result.granted) {
|
|
70
|
+
state.verifiedTrustLevel = result.trustLevel;
|
|
71
|
+
}
|
|
68
72
|
const verdict1 = result.granted ? "PASS" : "FAIL";
|
|
69
73
|
const levelName = TRUST_LEVEL_NAMES[result.trustLevel] ?? "unknown";
|
|
70
74
|
// ── Mint AI-TRUST.1 ──
|
package/dist/tools/trust.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trust.js","sourceRoot":"","sources":["../../src/tools/trust.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"trust.js","sourceRoot":"","sources":["../../src/tools/trust.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tenova/swt3-mcp",
|
|
3
|
-
"version": "0.5.
|
|
4
|
-
"
|
|
3
|
+
"version": "0.5.2",
|
|
4
|
+
"mcpName": "io.tenova/swt3-witness",
|
|
5
|
+
"description": "Cryptographic compliance witnessing and security governance for AI agents. EU AI Act, NIST AI RMF, OWASP Agentic Top 10, CMMC, SR 11-7. Tool policy gates, trust mesh, inference attestation, audit sessions. Zero-config demo.",
|
|
5
6
|
"type": "module",
|
|
6
7
|
"main": "dist/index.js",
|
|
7
8
|
"types": "dist/index.d.ts",
|
|
@@ -33,19 +34,25 @@
|
|
|
33
34
|
"attestation",
|
|
34
35
|
"eu-ai-act",
|
|
35
36
|
"nist-ai-rmf",
|
|
37
|
+
"owasp-agentic-top10",
|
|
36
38
|
"ai-governance",
|
|
37
39
|
"ai-audit",
|
|
38
40
|
"ai-accountability",
|
|
39
41
|
"ai-observability",
|
|
40
|
-
"llm-monitoring",
|
|
41
|
-
"compliance-as-code",
|
|
42
|
-
"responsible-ai",
|
|
43
42
|
"ai-safety",
|
|
43
|
+
"agent-security",
|
|
44
|
+
"trust-mesh",
|
|
45
|
+
"policy-as-code",
|
|
44
46
|
"nist-800-53",
|
|
45
47
|
"cmmc",
|
|
48
|
+
"sr-11-7",
|
|
49
|
+
"iso-42001",
|
|
46
50
|
"fedramp",
|
|
51
|
+
"gdpr",
|
|
47
52
|
"cryptographic-attestation",
|
|
48
|
-
"audit-trail"
|
|
53
|
+
"audit-trail",
|
|
54
|
+
"non-repudiation",
|
|
55
|
+
"tool-policy-gate"
|
|
49
56
|
],
|
|
50
57
|
"author": "TeNova <engineering@tenovaai.com>",
|
|
51
58
|
"license": "Apache-2.0",
|