aegis-mcp-server 0.1.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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-tools.js","sourceRoot":"","sources":["../../src/tools/file-tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,286 @@
1
+ /**
2
+ * Aegis MCP Server — Core Type Definitions
3
+ *
4
+ * Aligned to the aegis-spec v0.2.0 schema contract and the aegis-cli v0.2.4
5
+ * extraction prompt. Skeleton fields (required by the spec) are typed precisely.
6
+ * Extension fields (domain-specific additions the LLM may generate) are typed
7
+ * as optional with their known shapes.
8
+ *
9
+ * The enforcement engine reads skeleton fields with confidence and leverages
10
+ * extension fields when present for deeper enforcement.
11
+ */
12
+ export interface Constitution {
13
+ $schema?: string;
14
+ version: string;
15
+ project: {
16
+ name: string;
17
+ purpose: string;
18
+ architecture: string;
19
+ module_map?: ModuleMapEntry[];
20
+ required_artifacts?: RequiredArtifact[];
21
+ /** Extension: domain list with paths and descriptions */
22
+ domains?: DomainEntry[];
23
+ /** Extension: catch-all for other project fields */
24
+ [key: string]: unknown;
25
+ };
26
+ tech_stack: {
27
+ languages: string[];
28
+ frameworks?: string[];
29
+ infrastructure?: string[];
30
+ package_managers?: string[];
31
+ key_libraries?: Array<{
32
+ name: string;
33
+ purpose: string;
34
+ scope?: string;
35
+ }>;
36
+ [key: string]: unknown;
37
+ };
38
+ principles: Principle[];
39
+ build_commands?: BuildCommands;
40
+ /** Extension: sensitivity tier definitions */
41
+ sensitivity_tiers?: SensitivityTier[];
42
+ [key: string]: unknown;
43
+ }
44
+ export interface ModuleMapEntry {
45
+ path: string;
46
+ purpose: string;
47
+ owner?: string;
48
+ internal_dependencies?: string[];
49
+ }
50
+ export interface RequiredArtifact {
51
+ path: string;
52
+ purpose: string;
53
+ source?: string;
54
+ }
55
+ export interface DomainEntry {
56
+ name: string;
57
+ path: string;
58
+ description: string;
59
+ }
60
+ export interface Principle {
61
+ name: string;
62
+ statement: string;
63
+ priority?: number;
64
+ /** Extension: enforcement level */
65
+ id?: string;
66
+ enforcement?: string;
67
+ text?: string;
68
+ [key: string]: unknown;
69
+ }
70
+ export interface BuildCommands {
71
+ install?: string;
72
+ build?: string;
73
+ test?: string;
74
+ lint?: string;
75
+ typecheck?: string;
76
+ dev?: string;
77
+ custom?: Array<{
78
+ name: string;
79
+ command: string;
80
+ purpose: string;
81
+ }>;
82
+ [key: string]: unknown;
83
+ }
84
+ export interface SensitivityTier {
85
+ tier: string;
86
+ description: string;
87
+ examples: string[];
88
+ handling: Record<string, string>;
89
+ }
90
+ export interface Governance {
91
+ $schema?: string;
92
+ version: string;
93
+ autonomy: {
94
+ default_level: AutonomyLevel;
95
+ domains?: Record<string, AutonomyLevel>;
96
+ /** Extension: detailed level descriptions */
97
+ levels?: Record<string, {
98
+ description: string;
99
+ }>;
100
+ /** Extension: per-domain overrides (alternate key) */
101
+ domain_overrides?: Record<string, AutonomyLevel | string>;
102
+ [key: string]: unknown;
103
+ };
104
+ permissions: {
105
+ boundaries: PermissionBoundaries;
106
+ sensitive_patterns?: SensitivePattern[];
107
+ [key: string]: unknown;
108
+ };
109
+ quality_gate: {
110
+ pre_commit: PreCommitGates;
111
+ /** Extension: richer gate array */
112
+ gates?: QualityGateEntry[];
113
+ /** Extension: override authority */
114
+ override_authority?: string;
115
+ [key: string]: unknown;
116
+ };
117
+ conventions?: Convention[];
118
+ escalation?: EscalationConfig;
119
+ override_protocol?: OverrideProtocol;
120
+ /** Extension: cross-domain enforcement rules */
121
+ cross_domain_rules?: CrossDomainRules;
122
+ /** Extension: data directory policy */
123
+ data_directory_policy?: Record<string, unknown>;
124
+ /** Extension: build commands (may appear here or in constitution) */
125
+ build_commands?: BuildCommands;
126
+ [key: string]: unknown;
127
+ }
128
+ export type AutonomyLevel = 'conservative' | 'advisory' | 'delegated';
129
+ export interface PermissionBoundaries {
130
+ writable?: string[];
131
+ read_only?: string[];
132
+ forbidden?: string[];
133
+ }
134
+ export interface SensitivePattern {
135
+ pattern: string;
136
+ reason: string;
137
+ }
138
+ export interface PreCommitGates {
139
+ must_pass_tests?: boolean;
140
+ must_pass_lint?: boolean;
141
+ must_pass_typecheck?: boolean;
142
+ must_add_tests?: boolean;
143
+ must_update_docs?: boolean;
144
+ max_files_changed?: number;
145
+ custom_checks?: Array<{
146
+ name: string;
147
+ command: string;
148
+ description?: string;
149
+ }>;
150
+ }
151
+ export interface QualityGateEntry {
152
+ name: string;
153
+ scope: string | string[];
154
+ required: boolean;
155
+ description: string;
156
+ }
157
+ export interface Convention {
158
+ id: string;
159
+ scope: string;
160
+ rule: string;
161
+ value?: string;
162
+ allowed?: string[];
163
+ forbidden?: string[];
164
+ enforcement: 'strict' | 'preferred' | 'suggestion';
165
+ rationale?: string;
166
+ }
167
+ export interface EscalationConfig {
168
+ on_ambiguity?: 'stop_and_ask' | 'best_judgment_and_flag' | 'best_judgment_silent';
169
+ on_conflict?: 'stop_and_ask' | 'principles_win' | 'convention_wins';
170
+ on_scope_boundary?: 'stop_and_ask' | 'flag_and_suggest' | 'stay_in_lane';
171
+ /** Extension: trigger list */
172
+ triggers?: string[];
173
+ /** Extension: escalation target */
174
+ target?: string;
175
+ /** Extension: escalation behavior description */
176
+ behavior?: string;
177
+ [key: string]: unknown;
178
+ }
179
+ export interface OverrideProtocol {
180
+ behavior?: 'block_and_log' | 'warn_confirm_and_log' | 'log_only';
181
+ log_path?: string;
182
+ log_entry_schema?: Record<string, unknown>;
183
+ immutable_policies?: string[];
184
+ }
185
+ export interface CrossDomainRules {
186
+ communication_method?: string;
187
+ shared_interfaces_path?: string;
188
+ violations?: Record<string, string>;
189
+ description?: string;
190
+ [key: string]: unknown;
191
+ }
192
+ export interface RoleFile {
193
+ $schema?: string;
194
+ version: string;
195
+ /** Skeleton: nested role object */
196
+ role: {
197
+ name: string;
198
+ purpose: string;
199
+ specialization?: string[];
200
+ };
201
+ /** Skeleton: scoped paths */
202
+ scope: {
203
+ primary_paths: string[];
204
+ secondary_paths?: string[];
205
+ excluded_paths?: string[];
206
+ };
207
+ autonomy_overrides?: Record<string, AutonomyLevel>;
208
+ /** Extension: flat autonomy level for the role */
209
+ autonomy?: AutonomyLevel | string;
210
+ /** Extension: read/write path model */
211
+ paths?: {
212
+ read?: string[];
213
+ write?: string[];
214
+ };
215
+ /** Extension: prose list of forbidden actions */
216
+ forbidden_actions?: string[];
217
+ /** Extension: convention overrides or key-value conventions */
218
+ conventions?: unknown;
219
+ /** Extension: escalation triggers */
220
+ escalation_triggers?: string[];
221
+ /** Extension: QA validation responsibilities */
222
+ validation_responsibilities?: string[];
223
+ /** Extension: write mode (e.g. append-only) */
224
+ write_mode?: string;
225
+ /** Extension: report format config */
226
+ report_format?: Record<string, unknown>;
227
+ /** Extension: collaboration protocols */
228
+ collaboration?: Record<string, unknown>;
229
+ /** Extension: description (flat, alongside role.purpose) */
230
+ description?: string;
231
+ [key: string]: unknown;
232
+ }
233
+ /**
234
+ * Resolved role for enforcement — flattened from the RoleFile structure
235
+ * with skeleton and extension fields merged for fast lookups.
236
+ */
237
+ export interface ResolvedRole {
238
+ /** Filename without .json */
239
+ id: string;
240
+ /** role.name from skeleton */
241
+ name: string;
242
+ /** role.purpose from skeleton */
243
+ purpose: string;
244
+ /** Merged: scope.primary_paths + paths.write */
245
+ writable_paths: string[];
246
+ /** Merged: scope.secondary_paths */
247
+ secondary_paths: string[];
248
+ /** Merged: scope.excluded_paths */
249
+ excluded_paths: string[];
250
+ /** Merged: paths.read (when present) */
251
+ readable_paths: string[];
252
+ /** Autonomy level for this role */
253
+ autonomy: string;
254
+ /** Forbidden actions (prose, for informational responses) */
255
+ forbidden_actions: string[];
256
+ }
257
+ export type EnforcementVerdict = {
258
+ allowed: true;
259
+ } | {
260
+ allowed: false;
261
+ reason: string;
262
+ policy_ref: string;
263
+ immutable: boolean;
264
+ };
265
+ export interface OverrideLogEntry {
266
+ timestamp: string;
267
+ policy_violated: string;
268
+ policy_text: string;
269
+ action_requested: string;
270
+ human_confirmed: boolean;
271
+ agent_role: string;
272
+ rationale: string;
273
+ }
274
+ export interface PolicyState {
275
+ constitution: Constitution;
276
+ governance: Governance;
277
+ roles: Map<string, ResolvedRole>;
278
+ projectRoot: string;
279
+ policyDir: string;
280
+ }
281
+ export interface AegisMcpConfig {
282
+ role: string;
283
+ projectRoot: string;
284
+ policyDir?: string;
285
+ }
286
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Aegis MCP Server — Core Type Definitions
3
+ *
4
+ * Aligned to the aegis-spec v0.2.0 schema contract and the aegis-cli v0.2.4
5
+ * extraction prompt. Skeleton fields (required by the spec) are typed precisely.
6
+ * Extension fields (domain-specific additions the LLM may generate) are typed
7
+ * as optional with their known shapes.
8
+ *
9
+ * The enforcement engine reads skeleton fields with confidence and leverages
10
+ * extension fields when present for deeper enforcement.
11
+ */
12
+ export {};
13
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG"}
package/package.json ADDED
@@ -0,0 +1,41 @@
1
+ {
2
+ "name": "aegis-mcp-server",
3
+ "version": "0.1.0",
4
+ "description": "MCP enforcement layer for the Aegis agent governance specification",
5
+ "type": "module",
6
+ "bin": {
7
+ "aegis-mcp": "./dist/index.js"
8
+ },
9
+ "main": "dist/index.js",
10
+ "scripts": {
11
+ "build": "tsc",
12
+ "start": "node dist/index.js",
13
+ "dev": "tsc --watch"
14
+ },
15
+ "keywords": [
16
+ "mcp",
17
+ "ai-governance",
18
+ "agent-governance",
19
+ "aegis",
20
+ "model-context-protocol"
21
+ ],
22
+ "author": "Cleburn",
23
+ "license": "MIT",
24
+ "repository": {
25
+ "type": "git",
26
+ "url": "https://github.com/cleburn/aegis-mcp.git"
27
+ },
28
+ "dependencies": {
29
+ "@modelcontextprotocol/sdk": "^1.12.0",
30
+ "chokidar": "^4.0.0",
31
+ "minimatch": "^10.0.0",
32
+ "zod": "^3.24.0"
33
+ },
34
+ "devDependencies": {
35
+ "@types/node": "^22.0.0",
36
+ "typescript": "^5.7.0"
37
+ },
38
+ "engines": {
39
+ "node": ">=18.0.0"
40
+ }
41
+ }
package/src/index.ts ADDED
@@ -0,0 +1,171 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * Aegis MCP Server — Entry Point
5
+ *
6
+ * Starts the MCP enforcement server. Loads .agentpolicy/ into process memory,
7
+ * registers governed tools, and connects via stdio transport.
8
+ *
9
+ * The agent connects to this server and calls governed tools (aegis_write_file,
10
+ * aegis_read_file, etc.) instead of raw file system operations. All validation
11
+ * happens in this process at zero token cost to the agent.
12
+ *
13
+ * Usage:
14
+ * aegis-mcp --project /path/to/project --role backend
15
+ *
16
+ * Claude Code MCP config:
17
+ * {
18
+ * "mcpServers": {
19
+ * "aegis": {
20
+ * "command": "npx",
21
+ * "args": ["aegis-mcp-server", "--project", ".", "--role", "default"]
22
+ * }
23
+ * }
24
+ * }
25
+ */
26
+
27
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
28
+ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
29
+ import { resolve } from 'node:path';
30
+ import { PolicyLoader } from './services/policy-loader.js';
31
+ import { EnforcementEngine } from './services/enforcement-engine.js';
32
+ import { registerTools } from './tools/file-tools.js';
33
+ import type { AegisMcpConfig } from './types.js';
34
+
35
+ // ─── Parse CLI Args ─────────────────────────────────────────────────────────
36
+
37
+ function parseArgs(): AegisMcpConfig {
38
+ const args = process.argv.slice(2);
39
+ let projectRoot = process.cwd();
40
+ let role = 'default';
41
+ let policyDir: string | undefined;
42
+
43
+ for (let i = 0; i < args.length; i++) {
44
+ switch (args[i]) {
45
+ case '--project':
46
+ case '-p':
47
+ projectRoot = resolve(args[++i] ?? '.');
48
+ break;
49
+ case '--role':
50
+ case '-r':
51
+ role = args[++i] ?? 'default';
52
+ break;
53
+ case '--policy-dir':
54
+ policyDir = args[++i];
55
+ break;
56
+ case '--help':
57
+ case '-h':
58
+ printHelp();
59
+ process.exit(0);
60
+ break;
61
+ case '--version':
62
+ case '-v':
63
+ log('aegis-mcp-server v0.1.0');
64
+ process.exit(0);
65
+ break;
66
+ }
67
+ }
68
+
69
+ return { projectRoot, role, policyDir };
70
+ }
71
+
72
+ function printHelp(): void {
73
+ log(`
74
+ aegis-mcp-server — MCP enforcement layer for Aegis agent governance
75
+
76
+ USAGE:
77
+ aegis-mcp-server [OPTIONS]
78
+
79
+ OPTIONS:
80
+ -p, --project <path> Project root directory (default: cwd)
81
+ -r, --role <role-id> Agent role to enforce (default: "default")
82
+ --policy-dir <dir> Policy directory name (default: ".agentpolicy")
83
+ -h, --help Show this help
84
+ -v, --version Show version
85
+
86
+ CLAUDE CODE CONFIG:
87
+ {
88
+ "mcpServers": {
89
+ "aegis": {
90
+ "command": "npx",
91
+ "args": ["aegis-mcp-server", "--project", ".", "--role", "default"]
92
+ }
93
+ }
94
+ }
95
+
96
+ TOOLS PROVIDED:
97
+ aegis_check_permissions Pre-check if an operation is allowed
98
+ aegis_write_file Governed file write with content scanning
99
+ aegis_read_file Governed file read
100
+ aegis_delete_file Governed file delete
101
+ aegis_execute Governed command execution
102
+ aegis_complete_task Task completion with quality gate validation
103
+ aegis_policy_summary Minimal summary of current role and permissions
104
+ `);
105
+ }
106
+
107
+ // ─── Main ───────────────────────────────────────────────────────────────────
108
+
109
+ async function main(): Promise<void> {
110
+ const config = parseArgs();
111
+
112
+ log('Starting aegis-mcp-server');
113
+ log(` Project: ${config.projectRoot}`);
114
+ log(` Role: ${config.role}`);
115
+ log(` Policy dir: ${config.policyDir ?? '.agentpolicy'}`);
116
+
117
+ // 1. Load policy into process memory
118
+ const loader = new PolicyLoader(config);
119
+ let state = await loader.load();
120
+ let activeRole = loader.getActiveRole();
121
+ let engine = new EnforcementEngine(state, activeRole);
122
+
123
+ // 2. Watch for policy changes and auto-reload
124
+ loader.startWatching(() => {
125
+ state = loader.getState();
126
+ activeRole = loader.getActiveRole();
127
+ engine.updateState(state, activeRole);
128
+ log('Policy reloaded');
129
+ });
130
+
131
+ // 3. Create MCP server
132
+ const server = new McpServer({
133
+ name: 'aegis-mcp-server',
134
+ version: '0.1.0',
135
+ });
136
+
137
+ // 4. Register governed tools
138
+ registerTools(
139
+ server,
140
+ () => engine,
141
+ () => state,
142
+ () => activeRole
143
+ );
144
+
145
+ // 5. Connect via stdio transport
146
+ const transport = new StdioServerTransport();
147
+ await server.connect(transport);
148
+
149
+ log('Connected via stdio — enforcement active');
150
+
151
+ // Graceful shutdown
152
+ const shutdown = async (): Promise<void> => {
153
+ log('Shutting down...');
154
+ await loader.stopWatching();
155
+ process.exit(0);
156
+ };
157
+
158
+ process.on('SIGINT', shutdown);
159
+ process.on('SIGTERM', shutdown);
160
+ }
161
+
162
+ function log(message: string): void {
163
+ process.stderr.write(`[aegis-mcp] ${message}\n`);
164
+ }
165
+
166
+ main().catch((err) => {
167
+ process.stderr.write(
168
+ `[aegis-mcp] Fatal: ${err instanceof Error ? err.message : String(err)}\n`
169
+ );
170
+ process.exit(1);
171
+ });