@intutic/mcp-governance-proxy 2.2.0 → 2.4.0
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 +8 -7
- package/dist/agentTools.d.ts +83 -0
- package/dist/agentTools.d.ts.map +1 -0
- package/dist/agentTools.js +170 -0
- package/dist/agentTools.js.map +1 -0
- package/dist/anomaly/detectors.js +1 -1
- package/dist/anomaly/detectors.js.map +1 -1
- package/dist/approvalHold.d.ts +8 -7
- package/dist/approvalHold.d.ts.map +1 -1
- package/dist/approvalHold.js +7 -6
- package/dist/approvalHold.js.map +1 -1
- package/dist/budget.d.ts +133 -0
- package/dist/budget.d.ts.map +1 -0
- package/dist/budget.js +191 -0
- package/dist/budget.js.map +1 -0
- package/dist/config.d.ts +1 -1
- package/dist/config.js +1 -1
- package/dist/config.js.map +1 -1
- package/dist/daemon/healthMonitor.d.ts.map +1 -1
- package/dist/daemon/healthMonitor.js +0 -1
- package/dist/daemon/healthMonitor.js.map +1 -1
- package/dist/daemon/index.d.ts +0 -2
- package/dist/daemon/index.d.ts.map +1 -1
- package/dist/daemon/index.js +0 -2
- package/dist/daemon/index.js.map +1 -1
- package/dist/daemon/policyCache.d.ts +22 -3
- package/dist/daemon/policyCache.d.ts.map +1 -1
- package/dist/daemon/policyCache.js +38 -15
- package/dist/daemon/policyCache.js.map +1 -1
- package/dist/daemon/socketServer.d.ts +0 -1
- package/dist/daemon/socketServer.d.ts.map +1 -1
- package/dist/daemon/socketServer.js +0 -1
- package/dist/daemon/socketServer.js.map +1 -1
- package/dist/daemon/statusReporter.d.ts.map +1 -1
- package/dist/daemon/statusReporter.js +0 -1
- package/dist/daemon/statusReporter.js.map +1 -1
- package/dist/daemon/telemetryBatcher.d.ts.map +1 -1
- package/dist/daemon/telemetryBatcher.js +0 -1
- package/dist/daemon/telemetryBatcher.js.map +1 -1
- package/dist/daemonClient.d.ts.map +1 -1
- package/dist/daemonClient.js +0 -1
- package/dist/daemonClient.js.map +1 -1
- package/dist/dlp.d.ts +32 -3
- package/dist/dlp.d.ts.map +1 -1
- package/dist/dlp.js +116 -18
- package/dist/dlp.js.map +1 -1
- package/dist/dlpPii.d.ts +66 -0
- package/dist/dlpPii.d.ts.map +1 -0
- package/dist/dlpPii.js +235 -0
- package/dist/dlpPii.js.map +1 -0
- package/dist/emitter.d.ts +65 -3
- package/dist/emitter.d.ts.map +1 -1
- package/dist/emitter.js +13 -1
- package/dist/emitter.js.map +1 -1
- package/dist/guardedValkey.d.ts +40 -0
- package/dist/guardedValkey.d.ts.map +1 -0
- package/dist/guardedValkey.js +84 -0
- package/dist/guardedValkey.js.map +1 -0
- package/dist/httpJson.d.ts +7 -0
- package/dist/httpJson.d.ts.map +1 -1
- package/dist/httpJson.js +39 -0
- package/dist/httpJson.js.map +1 -1
- package/dist/injection.js +1 -1
- package/dist/interceptor.d.ts +65 -10
- package/dist/interceptor.d.ts.map +1 -1
- package/dist/interceptor.js +190 -69
- package/dist/interceptor.js.map +1 -1
- package/dist/policy.d.ts +37 -1
- package/dist/policy.d.ts.map +1 -1
- package/dist/policy.js +62 -3
- package/dist/policy.js.map +1 -1
- package/dist/proxy.d.ts +30 -9
- package/dist/proxy.d.ts.map +1 -1
- package/dist/proxy.js +127 -57
- package/dist/proxy.js.map +1 -1
- package/dist/refusals.d.ts +26 -0
- package/dist/refusals.d.ts.map +1 -0
- package/dist/refusals.js +43 -0
- package/dist/refusals.js.map +1 -0
- package/dist/registryObserver.d.ts +9 -5
- package/dist/registryObserver.d.ts.map +1 -1
- package/dist/registryObserver.js +19 -8
- package/dist/registryObserver.js.map +1 -1
- package/dist/session.d.ts +1 -1
- package/dist/session.js +1 -1
- package/dist/sessionScope.d.ts +1 -1
- package/dist/sessionScope.js +1 -1
- package/dist/sessionStore.d.ts +10 -23
- package/dist/sessionStore.d.ts.map +1 -1
- package/dist/sessionStore.js +17 -76
- package/dist/sessionStore.js.map +1 -1
- package/dist/wasm/cloudRules.d.ts +138 -0
- package/dist/wasm/cloudRules.d.ts.map +1 -0
- package/dist/wasm/cloudRules.js +242 -0
- package/dist/wasm/cloudRules.js.map +1 -0
- package/dist/wasm/context.d.ts +10 -0
- package/dist/wasm/context.d.ts.map +1 -1
- package/dist/wasm/context.js +27 -0
- package/dist/wasm/context.js.map +1 -1
- package/dist/wasm/hostImports.d.ts +3 -3
- package/dist/wasm/hostImports.d.ts.map +1 -1
- package/dist/wasm/hostImports.js +8 -7
- package/dist/wasm/hostImports.js.map +1 -1
- package/dist/wasm/loader.d.ts +10 -1
- package/dist/wasm/loader.d.ts.map +1 -1
- package/dist/wasm/loader.js +2 -0
- package/dist/wasm/loader.js.map +1 -1
- package/dist/wasm/referencedFiles.d.ts +29 -4
- package/dist/wasm/referencedFiles.d.ts.map +1 -1
- package/dist/wasm/referencedFiles.js +48 -21
- package/dist/wasm/referencedFiles.js.map +1 -1
- package/dist/wasm/runner.d.ts +169 -31
- package/dist/wasm/runner.d.ts.map +1 -1
- package/dist/wasm/runner.js +298 -83
- package/dist/wasm/runner.js.map +1 -1
- package/dist/wasm/watch.js +1 -1
- package/dist/wasm/worker.d.ts +10 -6
- package/dist/wasm/worker.d.ts.map +1 -1
- package/dist/wasm/worker.js +93 -9
- package/dist/wasm/worker.js.map +1 -1
- package/package.json +5 -4
- package/dist/toolPoison.d.ts +0 -32
- package/dist/toolPoison.d.ts.map +0 -1
- package/dist/toolPoison.js +0 -81
- package/dist/toolPoison.js.map +0 -1
- package/dist/wasm/fuel.d.ts +0 -35
- package/dist/wasm/fuel.d.ts.map +0 -1
- package/dist/wasm/fuel.js +0 -299
- package/dist/wasm/fuel.js.map +0 -1
- package/dist/wasm/memoryCap.d.ts +0 -21
- package/dist/wasm/memoryCap.d.ts.map +0 -1
- package/dist/wasm/memoryCap.js +0 -54
- package/dist/wasm/memoryCap.js.map +0 -1
- package/dist/wasm/wasmBinary.d.ts +0 -25
- package/dist/wasm/wasmBinary.d.ts.map +0 -1
- package/dist/wasm/wasmBinary.js +0 -100
- package/dist/wasm/wasmBinary.js.map +0 -1
package/dist/proxy.js
CHANGED
|
@@ -7,7 +7,8 @@
|
|
|
7
7
|
*
|
|
8
8
|
* Architecture (standalone mode — the `intutic` harness entry):
|
|
9
9
|
* Harness ↔ [McpGovernanceProxy as MCP Server] ↔ Control Plane REST API
|
|
10
|
-
* Exposes governance tools: intutic_governance_status, intutic_list_sops, intutic_list_incidents
|
|
10
|
+
* Exposes governance tools: intutic_governance_status, intutic_list_sops, intutic_list_incidents,
|
|
11
|
+
* intutic_hold_status, intutic_mcp_registry_status, intutic_mcp_budget_remaining.
|
|
11
12
|
*
|
|
12
13
|
* Architecture (remote bridge mode — `--remote-url`, see remoteBridge.ts):
|
|
13
14
|
* Harness stdin → [McpGovernanceProxy] → remote MCP server (HTTP/SSE)
|
|
@@ -32,16 +33,21 @@ import { createStderrLogger as createLogger } from './stderrLog.js';
|
|
|
32
33
|
import { PolicyClient } from './policy.js';
|
|
33
34
|
import { GovernanceEmitter, detectionFinding } from './emitter.js';
|
|
34
35
|
import { ToolCallInterceptor } from './interceptor.js';
|
|
35
|
-
import {
|
|
36
|
+
import { LIST_INCIDENTS_ARGS, budgetRemaining, describeFailure, holdStatus, incidentListPath, readControlPlane, registryStatus, } from './agentTools.js';
|
|
37
|
+
import { redactText as redactMcpText, setWorkspacePii } from './dlp.js';
|
|
36
38
|
import { scanText, injectionSeverity, setDynamicInjectionPatterns } from './injection.js';
|
|
37
39
|
import { toolPoisoning, dlpEscalation } from './anomaly/index.js';
|
|
38
40
|
import { SessionState } from './session.js';
|
|
39
41
|
import { ValkeySessionStore } from './sessionStore.js';
|
|
42
|
+
import { GuardedValkey } from './guardedValkey.js';
|
|
43
|
+
import { McpBudgetEnforcer, ValkeyBudgetStore } from './budget.js';
|
|
40
44
|
import { WasmRunner } from './wasm/runner.js';
|
|
45
|
+
import { CloudRuleSet, fetchRuleBinaryFrom, refusalDetail } from './wasm/cloudRules.js';
|
|
41
46
|
import { checkTofu, decideTofuAction } from './tofu.js';
|
|
42
47
|
import { RegistryObserver } from './registryObserver.js';
|
|
43
48
|
import { ApprovalHolds } from './approvalHold.js';
|
|
44
49
|
import { callerIdentity } from './identity.js';
|
|
50
|
+
import { normalizeToolDefinition } from '@intutic/shared-types';
|
|
45
51
|
import { PACKAGE_VERSION } from './version.js';
|
|
46
52
|
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
47
53
|
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
@@ -49,34 +55,53 @@ import { z } from 'zod';
|
|
|
49
55
|
import { watchWasmDir } from './wasm/watch.js';
|
|
50
56
|
const log = createLogger('mcp-governance-proxy');
|
|
51
57
|
/**
|
|
52
|
-
* Build a JSON-RPC 2.0 error response for a blocked tool call.
|
|
58
|
+
* Build a JSON-RPC 2.0 error response for a blocked tool call. `data` names
|
|
59
|
+
* the refusal for a client that reads it programmatically (refusals.ts).
|
|
53
60
|
*/
|
|
54
|
-
function buildBlockResponse(id, reason) {
|
|
61
|
+
function buildBlockResponse(id, reason, data) {
|
|
55
62
|
return {
|
|
56
63
|
jsonrpc: '2.0',
|
|
57
64
|
id,
|
|
58
65
|
error: {
|
|
59
66
|
code: -32603, // Internal error (closest standard code to "blocked")
|
|
60
67
|
message: `[Intutic Governance] Tool call blocked: ${reason}`,
|
|
68
|
+
data,
|
|
61
69
|
},
|
|
62
70
|
};
|
|
63
71
|
}
|
|
72
|
+
/** The `error.data` of a block decision: its code, rule id and detail. */
|
|
73
|
+
function blockData(decision) {
|
|
74
|
+
return { code: decision.code, ruleId: decision.ruleId, ...decision.detail };
|
|
75
|
+
}
|
|
64
76
|
/**
|
|
65
77
|
* The JSON-RPC error for a call held for approval. Same code as a block (the
|
|
66
78
|
* call did not run), a message that says "held" rather than "blocked", and
|
|
67
|
-
* the hold id in `data` for a client that reads it programmatically
|
|
79
|
+
* the hold id in `data` for a client that reads it programmatically — empty
|
|
80
|
+
* when the hold could not be recorded, so there is nothing to approve yet.
|
|
68
81
|
*/
|
|
69
|
-
function buildHoldResponse(id, reason, holdId) {
|
|
82
|
+
function buildHoldResponse(id, reason, holdId, ruleId) {
|
|
70
83
|
return {
|
|
71
84
|
jsonrpc: '2.0',
|
|
72
85
|
id,
|
|
73
86
|
error: {
|
|
74
87
|
code: -32603,
|
|
75
88
|
message: `[Intutic Governance] Tool call ${reason}`,
|
|
76
|
-
data: { status: 'pending_approval', holdId },
|
|
89
|
+
data: { code: 'HELD', ruleId, status: 'pending_approval', holdId },
|
|
77
90
|
},
|
|
78
91
|
};
|
|
79
92
|
}
|
|
93
|
+
/**
|
|
94
|
+
* Who a per-member MCP budget counts when the control plane has not named the
|
|
95
|
+
* member behind this proxy's key: the key's prefix, else the OS user. Callers
|
|
96
|
+
* with neither share one allowance.
|
|
97
|
+
*/
|
|
98
|
+
export function fallbackBudgetCaller(identity) {
|
|
99
|
+
if (identity.apiKeyPrefix)
|
|
100
|
+
return `key:${identity.apiKeyPrefix}`;
|
|
101
|
+
if (identity.osUser)
|
|
102
|
+
return `os:${identity.osUser}`;
|
|
103
|
+
return 'unknown';
|
|
104
|
+
}
|
|
80
105
|
/**
|
|
81
106
|
* Write a JSON-RPC frame to stdout (the ONLY valid place to write in a stdio MCP proxy).
|
|
82
107
|
*/
|
|
@@ -111,7 +136,7 @@ function writeFrame(frame) {
|
|
|
111
136
|
* change; the override controls what the agent actually reads.
|
|
112
137
|
*/
|
|
113
138
|
export function processServerLine(raw, pending, allowedTools, overrides, injectionAction = 'warn', injectionPatterns = [], disabledTools = []) {
|
|
114
|
-
// Workspace-supplied injection patterns
|
|
139
|
+
// Workspace-supplied injection patterns, on top of the floor.
|
|
115
140
|
// Idempotent when the list has not changed, so this is cheap per line.
|
|
116
141
|
setDynamicInjectionPatterns(injectionPatterns);
|
|
117
142
|
const trimmed = raw.trim();
|
|
@@ -161,6 +186,7 @@ export function processServerLine(raw, pending, allowedTools, overrides, injecti
|
|
|
161
186
|
message: `[Intutic Governance] Result withheld: it contained sensitive data ` +
|
|
162
187
|
`whose redaction did not survive re-parsing. The tool ran; its output ` +
|
|
163
188
|
`was not delivered. (${findings.map((f) => f.description).join('; ')})`,
|
|
189
|
+
data: { code: 'RESULT_WITHHELD_DLP', ruleId: `dlp.${findings[0]?.pattern ?? 'output'}` },
|
|
164
190
|
},
|
|
165
191
|
};
|
|
166
192
|
return { line: JSON.stringify(withheld), redactedTool, redactions };
|
|
@@ -187,6 +213,7 @@ export function processServerLine(raw, pending, allowedTools, overrides, injecti
|
|
|
187
213
|
message: `[Intutic Governance] Result withheld: it triggered prompt-injection ` +
|
|
188
214
|
`pattern(s) (${injectionPatterns.join(', ')}). The tool call already ran; ` +
|
|
189
215
|
`its output was not delivered.`,
|
|
216
|
+
data: { code: 'RESULT_WITHHELD_INJECTION', ruleId: 'injection.tool_result' },
|
|
190
217
|
},
|
|
191
218
|
};
|
|
192
219
|
return {
|
|
@@ -221,9 +248,10 @@ export function processServerLine(raw, pending, allowedTools, overrides, injecti
|
|
|
221
248
|
return { line: raw };
|
|
222
249
|
let hidden = 0;
|
|
223
250
|
let overridden = 0;
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
.
|
|
251
|
+
// Copied before the overrides below rewrite descriptions in place.
|
|
252
|
+
const upstream = tools
|
|
253
|
+
.map(normalizeToolDefinition)
|
|
254
|
+
.filter((t) => t !== null);
|
|
227
255
|
let kept = tools;
|
|
228
256
|
if (allowedTools.length > 0 || disabledTools.length > 0) {
|
|
229
257
|
kept = kept.filter((t) => {
|
|
@@ -277,7 +305,7 @@ export function processServerLine(raw, pending, allowedTools, overrides, injecti
|
|
|
277
305
|
return {
|
|
278
306
|
line: raw,
|
|
279
307
|
toolsListTools: kept,
|
|
280
|
-
|
|
308
|
+
toolsListUpstream: upstream,
|
|
281
309
|
toolsListMsgId: msg.id,
|
|
282
310
|
injectionFindings,
|
|
283
311
|
toolPoisoning: toolPoisoningFinding ?? undefined,
|
|
@@ -288,7 +316,7 @@ export function processServerLine(raw, pending, allowedTools, overrides, injecti
|
|
|
288
316
|
line: JSON.stringify(msg),
|
|
289
317
|
curated: { hidden, overridden },
|
|
290
318
|
toolsListTools: kept,
|
|
291
|
-
|
|
319
|
+
toolsListUpstream: upstream,
|
|
292
320
|
toolsListMsgId: msg.id,
|
|
293
321
|
injectionFindings,
|
|
294
322
|
toolPoisoning: toolPoisoningFinding ?? undefined,
|
|
@@ -343,10 +371,10 @@ export function handleHarnessLine(line, pending, interceptor, forward, session)
|
|
|
343
371
|
interceptor.decide(toolName, toolInput).then((decision) => {
|
|
344
372
|
if (decision.action === 'block') {
|
|
345
373
|
log.warn({ action: 'tool_blocked', toolName, reason: decision.reason }, 'Tool call blocked by governance proxy');
|
|
346
|
-
writeFrame(buildBlockResponse(msg.id, decision.reason));
|
|
374
|
+
writeFrame(buildBlockResponse(msg.id, decision.reason, blockData(decision)));
|
|
347
375
|
}
|
|
348
376
|
else if (decision.action === 'hold') {
|
|
349
|
-
writeFrame(buildHoldResponse(msg.id, decision.reason, decision.holdId));
|
|
377
|
+
writeFrame(buildHoldResponse(msg.id, decision.reason, decision.holdId, decision.ruleId));
|
|
350
378
|
}
|
|
351
379
|
else {
|
|
352
380
|
// Allow: the response now needs inspecting on the way back —
|
|
@@ -385,18 +413,26 @@ export class McpGovernanceProxy {
|
|
|
385
413
|
* (for detection + reask counting), `handleHarnessLine` (for post-decision
|
|
386
414
|
* recording), and this class's own `handleServerLine` (for caching the
|
|
387
415
|
* post-curation tools/list the tool_poisoning detector reads). Since Wave
|
|
388
|
-
* 5.3
|
|
416
|
+
* 5.3 it is also shared ACROSS the session's sibling proxy
|
|
389
417
|
* processes through `sessionStore` when a Valkey URL is configured — see
|
|
390
418
|
* session.ts's module doc.
|
|
391
419
|
*/
|
|
392
420
|
session;
|
|
393
|
-
/**
|
|
421
|
+
/**
|
|
422
|
+
* The process's one Valkey connection, when `config.valkeyUrl` is set and
|
|
423
|
+
* this is not the standalone entry: the shared session window and the MCP
|
|
424
|
+
* call budgets both use it.
|
|
425
|
+
*/
|
|
426
|
+
valkey;
|
|
427
|
+
/** The Valkey-backed shared window, on {@link valkey}. */
|
|
394
428
|
sessionStore;
|
|
395
429
|
/**
|
|
396
430
|
* Phase 3's WASM custom-rule runner — owns the one dedicated
|
|
397
|
-
* `worker_threads` Worker
|
|
398
|
-
*
|
|
399
|
-
* runs, not a second one
|
|
431
|
+
* `worker_threads` Worker, the `~/.intutic/wasm/` directory loader and the
|
|
432
|
+
* workspace's control-plane rules. The directory is rescanned on the SAME
|
|
433
|
+
* 60s policy-tick timer `PolicyClient.start` already runs, not a second one
|
|
434
|
+
* (see `policy.ts`'s `start(onTick)`); the control-plane rules follow the
|
|
435
|
+
* policy itself (the interceptor syncs them before each evaluation).
|
|
400
436
|
*/
|
|
401
437
|
wasmRunner;
|
|
402
438
|
/** Reports this proxy's server to the registry; absent for the standalone `intutic` entry, which fronts none. */
|
|
@@ -407,19 +443,26 @@ export class McpGovernanceProxy {
|
|
|
407
443
|
this.policy = new PolicyClient(config.controlPlaneUrl, config.apiKey, config.workspaceId, config.policyTtlMs, config.mcpProxyMode);
|
|
408
444
|
const identity = callerIdentity(config.apiKey, config.serverName, config.sessionScope);
|
|
409
445
|
this.emitter = new GovernanceEmitter(config.controlPlaneUrl, config.apiKey, config.eventsFilePath, config.workspaceId, config.mcpProxyMode, identity);
|
|
446
|
+
this.valkey = config.valkeyUrl ? new GuardedValkey(config.valkeyUrl) : undefined;
|
|
410
447
|
// The standalone `intutic` entry fronts no real server and records no
|
|
411
|
-
// calls worth sharing;
|
|
412
|
-
|
|
413
|
-
|
|
448
|
+
// calls worth sharing; it reads Valkey only for the budget counters its
|
|
449
|
+
// `intutic_mcp_budget_remaining` tool reports. Every wrapped server gets
|
|
450
|
+
// the shared window.
|
|
451
|
+
this.sessionStore = this.valkey && !config.standalone ? new ValkeySessionStore(this.valkey) : undefined;
|
|
414
452
|
this.session = new SessionState({ scope: config.sessionScope, store: this.sessionStore });
|
|
415
453
|
log.info({ action: 'session_scope', scope: config.sessionScope ?? null, shared: Boolean(this.sessionStore && config.sessionScope) }, this.sessionStore && config.sessionScope
|
|
416
454
|
? 'Anomaly session window shared with sibling proxies through Valkey'
|
|
417
455
|
: 'Anomaly session window is per-process');
|
|
418
|
-
this.wasmRunner = new WasmRunner(config.mcpWasmDir)
|
|
456
|
+
this.wasmRunner = new WasmRunner(config.mcpWasmDir, new CloudRuleSet(fetchRuleBinaryFrom(config.controlPlaneUrl, config.apiKey), (report) => {
|
|
457
|
+
// The hook-event ingest caps `reason` at 512 characters; an unloadable
|
|
458
|
+
// rule's compile error can run longer.
|
|
459
|
+
const reason = report.description.slice(0, 512);
|
|
460
|
+
this.emitter.emit('wasm_rule_refused', report.descriptor.ruleId, undefined, reason, undefined, undefined, { wasmRule: refusalDetail(report) });
|
|
461
|
+
}));
|
|
419
462
|
this.registryObserver = config.standalone
|
|
420
463
|
? undefined
|
|
421
464
|
: new RegistryObserver(config.controlPlaneUrl, config.apiKey, config.serverName, config.remoteTransport ?? 'stdio');
|
|
422
|
-
this.interceptor = new ToolCallInterceptor(this.policy, this.emitter, config.failOpen, config.serverName, config.mcpInjectionAction, this.session, config.mcpAnomalyMode, config.mcpAnomalyOverrides, this.wasmRunner, config.workspaceId, new ApprovalHolds(config.controlPlaneUrl, config.apiKey, config.workspaceId, config.serverName, identity));
|
|
465
|
+
this.interceptor = new ToolCallInterceptor(this.policy, this.emitter, config.failOpen, config.serverName, config.mcpInjectionAction, this.session, config.mcpAnomalyMode, config.mcpAnomalyOverrides, this.wasmRunner, config.workspaceId, new ApprovalHolds(config.controlPlaneUrl, config.apiKey, config.workspaceId, config.serverName, identity), new McpBudgetEnforcer(this.valkey ? new ValkeyBudgetStore(this.valkey) : undefined, config.workspaceId, config.serverName, fallbackBudgetCaller(identity)));
|
|
423
466
|
}
|
|
424
467
|
/**
|
|
425
468
|
* The tools/call decision engine — exposed so `remoteBridge.ts` can drive
|
|
@@ -455,7 +498,7 @@ export class McpGovernanceProxy {
|
|
|
455
498
|
}
|
|
456
499
|
wasmWatch = null;
|
|
457
500
|
/**
|
|
458
|
-
* Hot reload for `~/.intutic/wasm
|
|
501
|
+
* Hot reload for `~/.intutic/wasm/`: a directory watcher, not a
|
|
459
502
|
* second timer, so a dropped-in rule takes effect within a second instead
|
|
460
503
|
* of at the next 60-second tick. Re-armed on every tick because the
|
|
461
504
|
* directory may not exist when the proxy starts.
|
|
@@ -474,7 +517,7 @@ export class McpGovernanceProxy {
|
|
|
474
517
|
this.wasmWatch?.close();
|
|
475
518
|
this.wasmWatch = null;
|
|
476
519
|
void this.wasmRunner.shutdown();
|
|
477
|
-
void this.
|
|
520
|
+
void this.valkey?.close();
|
|
478
521
|
}
|
|
479
522
|
/**
|
|
480
523
|
* Start the proxy. Dispatches to standalone or proxy mode based on config.
|
|
@@ -500,31 +543,7 @@ export class McpGovernanceProxy {
|
|
|
500
543
|
const cpUrl = this.config.controlPlaneUrl;
|
|
501
544
|
const apiKey = this.config.apiKey;
|
|
502
545
|
const workspaceId = this.config.workspaceId;
|
|
503
|
-
|
|
504
|
-
try {
|
|
505
|
-
const res = await fetch(`${cpUrl}${path}`, {
|
|
506
|
-
headers: {
|
|
507
|
-
'Authorization': `Bearer ${apiKey}`,
|
|
508
|
-
'x-workspace-id': workspaceId,
|
|
509
|
-
},
|
|
510
|
-
signal: AbortSignal.timeout(5000),
|
|
511
|
-
});
|
|
512
|
-
if (res.status === 403)
|
|
513
|
-
return { ok: false, reason: 'forbidden' };
|
|
514
|
-
if (!res.ok)
|
|
515
|
-
return { ok: false, reason: 'unreachable' };
|
|
516
|
-
return { ok: true, data: await res.json() };
|
|
517
|
-
}
|
|
518
|
-
catch {
|
|
519
|
-
return { ok: false, reason: 'unreachable' };
|
|
520
|
-
}
|
|
521
|
-
}
|
|
522
|
-
/** Renders a failed call as text for the agent, naming the actual cause. */
|
|
523
|
-
function describeFailure(result, what) {
|
|
524
|
-
return result.reason === 'forbidden'
|
|
525
|
-
? `Your Intutic role is not permitted to ${what}. This needs the OWNER, ADMIN or EM role.`
|
|
526
|
-
: `Could not reach control plane to ${what}.`;
|
|
527
|
-
}
|
|
546
|
+
const callControlPlane = (path) => readControlPlane(cpUrl, apiKey, workspaceId, path);
|
|
528
547
|
// Tool: intutic_governance_status
|
|
529
548
|
server.tool('intutic_governance_status', 'Returns the current governance status and health of the Intutic control plane for this workspace.', {}, async () => {
|
|
530
549
|
const health = await callControlPlane('/healthz');
|
|
@@ -553,8 +572,8 @@ export class McpGovernanceProxy {
|
|
|
553
572
|
};
|
|
554
573
|
});
|
|
555
574
|
// Tool: intutic_list_incidents
|
|
556
|
-
server.tool('intutic_list_incidents', 'Lists
|
|
557
|
-
const result = await callControlPlane(
|
|
575
|
+
server.tool('intutic_list_incidents', 'Lists governance incidents (policy violations, blocked tool calls, refused custom rules, unreachable dependencies) in this workspace, most in need of review first, optionally of one type.', LIST_INCIDENTS_ARGS, async (args) => {
|
|
576
|
+
const result = await callControlPlane(incidentListPath(workspaceId, args));
|
|
558
577
|
const text = result.ok
|
|
559
578
|
? JSON.stringify(result.data, null, 2)
|
|
560
579
|
: describeFailure(result, 'list incidents');
|
|
@@ -562,6 +581,54 @@ export class McpGovernanceProxy {
|
|
|
562
581
|
content: [{ type: 'text', text }],
|
|
563
582
|
};
|
|
564
583
|
});
|
|
584
|
+
// Tool: intutic_hold_status
|
|
585
|
+
server.tool('intutic_hold_status', 'Reports whether a held tool call (a refusal with code HELD and a hold id) has been approved or rejected, ' +
|
|
586
|
+
'and whether retrying the identical call will now pass. Pass the hold id the refusal gave (hold_…).', { holdId: z.string().min(1).max(128).describe('The hold id from the refusal, hold_…') }, async ({ holdId }) => {
|
|
587
|
+
const decision = await callControlPlane(`/api/v1/decisions/${encodeURIComponent(holdId)}`);
|
|
588
|
+
let text;
|
|
589
|
+
if (!decision.ok) {
|
|
590
|
+
text =
|
|
591
|
+
decision.reason === 'not_found'
|
|
592
|
+
? `No hold ${holdId} was found in this workspace. Check the id the refusal gave; a hold that could not be recorded has none.`
|
|
593
|
+
: describeFailure(decision, `report hold ${holdId}`);
|
|
594
|
+
}
|
|
595
|
+
else {
|
|
596
|
+
// Only an approval needs the bypasses, to say whether a retry passes.
|
|
597
|
+
const status = decision.data.status;
|
|
598
|
+
const bypasses = status === 'APPROVED' ? await callControlPlane('/api/v1/decisions/approved-bypasses') : null;
|
|
599
|
+
text = JSON.stringify(holdStatus(holdId, decision.data, bypasses?.ok ? bypasses.data : null), null, 2);
|
|
600
|
+
}
|
|
601
|
+
return { content: [{ type: 'text', text }] };
|
|
602
|
+
});
|
|
603
|
+
// Tool: intutic_mcp_registry_status
|
|
604
|
+
server.tool('intutic_mcp_registry_status', "Reports what this workspace's MCP server registry says about each server: whether calls to it are allowed " +
|
|
605
|
+
'or refused (blocked, held after a risky tool change, or not approved under a deny default), and which of its ' +
|
|
606
|
+
'tools are switched off.', { server: z.string().min(1).max(256).optional().describe('One server name; every server when omitted') }, async ({ server: name }) => {
|
|
607
|
+
const result = await callControlPlane('/api/v1/mcp/servers');
|
|
608
|
+
const text = result.ok
|
|
609
|
+
? JSON.stringify(registryStatus(result.data, name), null, 2)
|
|
610
|
+
: describeFailure(result, 'read the MCP server registry');
|
|
611
|
+
return { content: [{ type: 'text', text }] };
|
|
612
|
+
});
|
|
613
|
+
// Tool: intutic_mcp_budget_remaining
|
|
614
|
+
server.tool('intutic_mcp_budget_remaining', "Lists this workspace's MCP call budgets that count your calls, with how many calls each has left this " +
|
|
615
|
+
'period and when it resets. Counts are read from the Valkey the MCP proxies on this machine count in.', {}, async () => {
|
|
616
|
+
await this.policy.ready();
|
|
617
|
+
const identity = callerIdentity(apiKey, 'intutic', this.config.sessionScope);
|
|
618
|
+
const store = this.valkey ? new ValkeyBudgetStore(this.valkey) : undefined;
|
|
619
|
+
const budgets = await budgetRemaining(this.policy.getMcpBudgets(), workspaceId, { memberId: this.policy.getPrincipal()?.memberId ?? null, fallback: fallbackBudgetCaller(identity) }, async (keys) => store?.used(keys));
|
|
620
|
+
const unread = budgets.some((b) => b.used === null);
|
|
621
|
+
const text = JSON.stringify({
|
|
622
|
+
budgets,
|
|
623
|
+
...(unread
|
|
624
|
+
? {
|
|
625
|
+
note: 'Used counts are null: this server has no Valkey to read them from (INTUTIC_VALKEY_URL), or it ' +
|
|
626
|
+
'did not answer. The limits still apply.',
|
|
627
|
+
}
|
|
628
|
+
: {}),
|
|
629
|
+
}, null, 2);
|
|
630
|
+
return { content: [{ type: 'text', text }] };
|
|
631
|
+
});
|
|
565
632
|
const transport = new StdioServerTransport();
|
|
566
633
|
await server.connect(transport);
|
|
567
634
|
log.info({ action: 'standalone_ready' }, 'Intutic MCP server ready');
|
|
@@ -596,6 +663,9 @@ export class McpGovernanceProxy {
|
|
|
596
663
|
*/
|
|
597
664
|
async handleServerLine(rawLine, pending) {
|
|
598
665
|
const injectionAction = this.policy.getInjectionAction() ?? this.config.mcpInjectionAction;
|
|
666
|
+
// Results are redacted with the workspace's PII detector actions too —
|
|
667
|
+
// a resources/read answer can arrive before any tools/call set them.
|
|
668
|
+
setWorkspacePii(this.policy.getPiiDetectors());
|
|
599
669
|
const outcome = processServerLine(rawLine, pending, this.policy.getAllowedTools(), this.policy.getToolDescriptionOverrides(), injectionAction, this.policy.getInjectionPatterns(), this.policy.getRegistry()?.disabledTools[this.config.serverName] ?? []);
|
|
600
670
|
if (outcome.injectionFindings) {
|
|
601
671
|
for (const finding of outcome.injectionFindings) {
|
|
@@ -659,7 +729,7 @@ export class McpGovernanceProxy {
|
|
|
659
729
|
if (outcome.toolsListTools) {
|
|
660
730
|
// The registry gets the server's own tool names, before curation:
|
|
661
731
|
// per-tool toggles must be able to re-enable a tool curation hid.
|
|
662
|
-
void this.registryObserver?.observe(outcome.
|
|
732
|
+
void this.registryObserver?.observe(outcome.toolsListUpstream ?? []);
|
|
663
733
|
// Cache the post-curation tools/list for Phase 2's tool_poisoning
|
|
664
734
|
// detector (already applied above, from this same outcome) and for
|
|
665
735
|
// Phase 3's WASM rule context (`tools` field) once that lands.
|
|
@@ -683,7 +753,7 @@ export class McpGovernanceProxy {
|
|
|
683
753
|
if (!this.interceptor.failOpen) {
|
|
684
754
|
writeFrame(buildBlockResponse(outcome.toolsListMsgId ?? null, `TOFU pin check for MCP server "${serverName}" failed (could not read/write ` +
|
|
685
755
|
`~/.intutic/mcp-pins/). Blocked by workspace policy (fail-closed mode). ` +
|
|
686
|
-
`Contact your administrator or update mcpProxyFailBehavior to open
|
|
756
|
+
`Contact your administrator or update mcpProxyFailBehavior to open.`, { code: 'TOFU_UNAVAILABLE', ruleId: 'mcpProxyFailBehavior' }));
|
|
687
757
|
return;
|
|
688
758
|
}
|
|
689
759
|
process.stdout.write(outcome.line + '\n');
|
|
@@ -715,7 +785,7 @@ export class McpGovernanceProxy {
|
|
|
715
785
|
}, reason);
|
|
716
786
|
this.emitter.emit('mcp_server_definition_changed', serverName, undefined, reason);
|
|
717
787
|
if (action.block) {
|
|
718
|
-
writeFrame(buildBlockResponse(outcome.toolsListMsgId ?? null, reason));
|
|
788
|
+
writeFrame(buildBlockResponse(outcome.toolsListMsgId ?? null, reason, { code: 'TOOL_DEFINITIONS_CHANGED', ruleId: `tofu.${serverName}` }));
|
|
719
789
|
return;
|
|
720
790
|
}
|
|
721
791
|
}
|
package/dist/proxy.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proxy.js","sourceRoot":"","sources":["../src/proxy.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"proxy.js","sourceRoot":"","sources":["../src/proxy.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* refusals.ts — the stable code every refusal this proxy gives carries.
|
|
3
|
+
*
|
|
4
|
+
* A JSON-RPC refusal is `-32603` with a message, and a message is for a
|
|
5
|
+
* person: an agent or client that wants to tell a held call from a blocked
|
|
6
|
+
* one, or a used-up budget from a disabled tool, should not have to parse it.
|
|
7
|
+
* So every refusal frame also carries `error.data`: `code` (one of
|
|
8
|
+
* {@link MCP_REFUSAL_CODES}), `ruleId` (the rule, setting or detector that
|
|
9
|
+
* decided) and, where there is more to say, more fields — the hold's
|
|
10
|
+
* `holdId` and `status`, a budget's `budgetId`, `limit`, `used` and
|
|
11
|
+
* `resetAt`.
|
|
12
|
+
*
|
|
13
|
+
* Held to `packages/shared-types/fixtures/refusal-codes.json` (`mcp`) by a
|
|
14
|
+
* test, as the MCP proxy reference's table is.
|
|
15
|
+
*
|
|
16
|
+
* @module
|
|
17
|
+
*/
|
|
18
|
+
export declare const MCP_REFUSAL_CODES: readonly ["REGISTRY_UNAVAILABLE", "SERVER_BLOCKED", "SERVER_HELD", "SERVER_NOT_APPROVED", "TOOL_DISABLED", "SERVER_NOT_ALLOWED", "TOOL_NOT_ALLOWED", "SSO_GROUP", "DLP", "SOP_RULE", "HELD", "INJECTION", "ANOMALY", "WASM_RULE", "REASK", "REASK_EXHAUSTED", "BUDGET_EXCEEDED", "BUDGET_UNAVAILABLE", "GOVERNANCE_UNAVAILABLE", "TOFU_UNAVAILABLE", "TOOL_DEFINITIONS_CHANGED", "RESULT_WITHHELD_DLP", "RESULT_WITHHELD_INJECTION"];
|
|
19
|
+
export type McpRefusalCode = (typeof MCP_REFUSAL_CODES)[number];
|
|
20
|
+
/** `error.data` on a refusal frame. */
|
|
21
|
+
export interface RefusalData {
|
|
22
|
+
code: McpRefusalCode;
|
|
23
|
+
ruleId: string;
|
|
24
|
+
[detail: string]: unknown;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=refusals.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"refusals.d.ts","sourceRoot":"","sources":["../src/refusals.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,eAAO,MAAM,iBAAiB,saAwBpB,CAAA;AAEV,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAA;AAE/D,uCAAuC;AACvC,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,cAAc,CAAA;IACpB,MAAM,EAAE,MAAM,CAAA;IACd,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAA;CAC1B"}
|
package/dist/refusals.js
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* refusals.ts — the stable code every refusal this proxy gives carries.
|
|
3
|
+
*
|
|
4
|
+
* A JSON-RPC refusal is `-32603` with a message, and a message is for a
|
|
5
|
+
* person: an agent or client that wants to tell a held call from a blocked
|
|
6
|
+
* one, or a used-up budget from a disabled tool, should not have to parse it.
|
|
7
|
+
* So every refusal frame also carries `error.data`: `code` (one of
|
|
8
|
+
* {@link MCP_REFUSAL_CODES}), `ruleId` (the rule, setting or detector that
|
|
9
|
+
* decided) and, where there is more to say, more fields — the hold's
|
|
10
|
+
* `holdId` and `status`, a budget's `budgetId`, `limit`, `used` and
|
|
11
|
+
* `resetAt`.
|
|
12
|
+
*
|
|
13
|
+
* Held to `packages/shared-types/fixtures/refusal-codes.json` (`mcp`) by a
|
|
14
|
+
* test, as the MCP proxy reference's table is.
|
|
15
|
+
*
|
|
16
|
+
* @module
|
|
17
|
+
*/
|
|
18
|
+
export const MCP_REFUSAL_CODES = [
|
|
19
|
+
'REGISTRY_UNAVAILABLE',
|
|
20
|
+
'SERVER_BLOCKED',
|
|
21
|
+
'SERVER_HELD',
|
|
22
|
+
'SERVER_NOT_APPROVED',
|
|
23
|
+
'TOOL_DISABLED',
|
|
24
|
+
'SERVER_NOT_ALLOWED',
|
|
25
|
+
'TOOL_NOT_ALLOWED',
|
|
26
|
+
'SSO_GROUP',
|
|
27
|
+
'DLP',
|
|
28
|
+
'SOP_RULE',
|
|
29
|
+
'HELD',
|
|
30
|
+
'INJECTION',
|
|
31
|
+
'ANOMALY',
|
|
32
|
+
'WASM_RULE',
|
|
33
|
+
'REASK',
|
|
34
|
+
'REASK_EXHAUSTED',
|
|
35
|
+
'BUDGET_EXCEEDED',
|
|
36
|
+
'BUDGET_UNAVAILABLE',
|
|
37
|
+
'GOVERNANCE_UNAVAILABLE',
|
|
38
|
+
'TOFU_UNAVAILABLE',
|
|
39
|
+
'TOOL_DEFINITIONS_CHANGED',
|
|
40
|
+
'RESULT_WITHHELD_DLP',
|
|
41
|
+
'RESULT_WITHHELD_INJECTION',
|
|
42
|
+
];
|
|
43
|
+
//# sourceMappingURL=refusals.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"refusals.js","sourceRoot":"","sources":["../src/refusals.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,sBAAsB;IACtB,gBAAgB;IAChB,aAAa;IACb,qBAAqB;IACrB,eAAe;IACf,oBAAoB;IACpB,kBAAkB;IAClB,WAAW;IACX,KAAK;IACL,UAAU;IACV,MAAM;IACN,WAAW;IACX,SAAS;IACT,WAAW;IACX,OAAO;IACP,iBAAiB;IACjB,iBAAiB;IACjB,oBAAoB;IACpB,wBAAwB;IACxB,kBAAkB;IAClB,0BAA0B;IAC1B,qBAAqB;IACrB,2BAA2B;CACnB,CAAA"}
|
|
@@ -7,15 +7,19 @@
|
|
|
7
7
|
* the proxy ever sees a server's tools/list. So the proxy reports its own
|
|
8
8
|
* server: once at start (so a server refused under a `deny` default still
|
|
9
9
|
* reaches the approval queue, even if its tools/list never gets through) and
|
|
10
|
-
* again whenever the
|
|
11
|
-
*
|
|
12
|
-
*
|
|
10
|
+
* again whenever the tools it sees change — a tool added or removed, or a
|
|
11
|
+
* description or input schema changed. The report carries the tool names (for
|
|
12
|
+
* the registry's per-tool toggles) and the definitions as the server declared
|
|
13
|
+
* them, before curation, which the control plane compares with the last ones
|
|
14
|
+
* it stored to score the change's risk. The control plane creates a candidate
|
|
15
|
+
* on first sight and notifies the workspace.
|
|
13
16
|
*
|
|
14
17
|
* Best-effort and quiet: a failed report costs one registry refresh, never a
|
|
15
18
|
* tool call.
|
|
16
19
|
*
|
|
17
20
|
* @module
|
|
18
21
|
*/
|
|
22
|
+
import type { McpToolDefinition } from '@intutic/shared-types';
|
|
19
23
|
export declare class RegistryObserver {
|
|
20
24
|
private readonly controlPlaneUrl;
|
|
21
25
|
private readonly apiKey;
|
|
@@ -24,10 +28,10 @@ export declare class RegistryObserver {
|
|
|
24
28
|
private lastReported;
|
|
25
29
|
constructor(controlPlaneUrl: string, apiKey: string, serverName: string, transport: 'stdio' | 'http' | 'sse');
|
|
26
30
|
/**
|
|
27
|
-
* Reports the server, with
|
|
31
|
+
* Reports the server, with its tools when known. A report identical to the
|
|
28
32
|
* last successful one is skipped. Without an API key, or without a
|
|
29
33
|
* `--server-name` to report, there is nothing the registry could record.
|
|
30
34
|
*/
|
|
31
|
-
observe(tools?: readonly
|
|
35
|
+
observe(tools?: readonly McpToolDefinition[]): Promise<void>;
|
|
32
36
|
}
|
|
33
37
|
//# sourceMappingURL=registryObserver.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registryObserver.d.ts","sourceRoot":"","sources":["../src/registryObserver.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"registryObserver.d.ts","sourceRoot":"","sources":["../src/registryObserver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AAM9D,qBAAa,gBAAgB;IAIzB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAN5B,OAAO,CAAC,YAAY,CAAsB;gBAGvB,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,OAAO,GAAG,MAAM,GAAG,KAAK;IAGtD;;;;OAIG;IACG,OAAO,CAAC,KAAK,CAAC,EAAE,SAAS,iBAAiB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAsBnE"}
|