mcp-sentinel 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.
Files changed (48) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +290 -0
  3. package/bin/mcp-sentinel.js +2 -0
  4. package/dist/aguara.d.ts +4 -0
  5. package/dist/aguara.d.ts.map +1 -0
  6. package/dist/aguara.js +105 -0
  7. package/dist/aguara.js.map +1 -0
  8. package/dist/analyzer.d.ts +9 -0
  9. package/dist/analyzer.d.ts.map +1 -0
  10. package/dist/analyzer.js +42 -0
  11. package/dist/analyzer.js.map +1 -0
  12. package/dist/cli.d.ts +3 -0
  13. package/dist/cli.d.ts.map +1 -0
  14. package/dist/cli.js +176 -0
  15. package/dist/cli.js.map +1 -0
  16. package/dist/config.d.ts +8 -0
  17. package/dist/config.d.ts.map +1 -0
  18. package/dist/config.js +55 -0
  19. package/dist/config.js.map +1 -0
  20. package/dist/diff.d.ts +3 -0
  21. package/dist/diff.d.ts.map +1 -0
  22. package/dist/diff.js +110 -0
  23. package/dist/diff.js.map +1 -0
  24. package/dist/formatter.d.ts +7 -0
  25. package/dist/formatter.d.ts.map +1 -0
  26. package/dist/formatter.js +184 -0
  27. package/dist/formatter.js.map +1 -0
  28. package/dist/index.d.ts +2 -0
  29. package/dist/index.d.ts.map +1 -0
  30. package/dist/index.js +165 -0
  31. package/dist/index.js.map +1 -0
  32. package/dist/markdown.d.ts +3 -0
  33. package/dist/markdown.d.ts.map +1 -0
  34. package/dist/markdown.js +106 -0
  35. package/dist/markdown.js.map +1 -0
  36. package/dist/policy.d.ts +5 -0
  37. package/dist/policy.d.ts.map +1 -0
  38. package/dist/policy.js +162 -0
  39. package/dist/policy.js.map +1 -0
  40. package/dist/scanner.d.ts +17 -0
  41. package/dist/scanner.d.ts.map +1 -0
  42. package/dist/scanner.js +147 -0
  43. package/dist/scanner.js.map +1 -0
  44. package/dist/types.d.ts +135 -0
  45. package/dist/types.d.ts.map +1 -0
  46. package/dist/types.js +2 -0
  47. package/dist/types.js.map +1 -0
  48. package/package.json +66 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scanner.js","sourceRoot":"","sources":["../src/scanner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,135 @@
1
+ export type ToolCategory = "read" | "write" | "admin";
2
+ export interface ServerInfo {
3
+ name: string;
4
+ version: string;
5
+ }
6
+ export interface ServerCapabilities {
7
+ tools: boolean;
8
+ resources: boolean;
9
+ prompts: boolean;
10
+ logging: boolean;
11
+ }
12
+ export interface SchemaProperty {
13
+ name: string;
14
+ type: string;
15
+ required: boolean;
16
+ description: string;
17
+ }
18
+ export interface ToolInfo {
19
+ name: string;
20
+ description: string;
21
+ parameters: SchemaProperty[];
22
+ rawInputSchema?: Record<string, unknown>;
23
+ }
24
+ export interface AnalyzedTool {
25
+ tool: ToolInfo;
26
+ category: ToolCategory;
27
+ }
28
+ export interface ResourceInfo {
29
+ uri: string;
30
+ name: string;
31
+ description: string;
32
+ mimeType: string;
33
+ }
34
+ export interface ResourceTemplateInfo {
35
+ uriTemplate: string;
36
+ name: string;
37
+ description: string;
38
+ mimeType: string;
39
+ }
40
+ export interface PromptArgument {
41
+ name: string;
42
+ description: string;
43
+ required: boolean;
44
+ }
45
+ export interface PromptInfo {
46
+ name: string;
47
+ description: string;
48
+ arguments: PromptArgument[];
49
+ }
50
+ export interface AguaraFinding {
51
+ severity: string;
52
+ ruleId: string;
53
+ ruleName: string;
54
+ matchedText: string;
55
+ line?: number;
56
+ }
57
+ export interface AguaraResult {
58
+ available: boolean;
59
+ findings: AguaraFinding[];
60
+ summary: string;
61
+ }
62
+ export interface ScanResult {
63
+ server: ServerInfo;
64
+ capabilities: ServerCapabilities;
65
+ tools: AnalyzedTool[];
66
+ toolSummary: {
67
+ read: number;
68
+ write: number;
69
+ admin: number;
70
+ };
71
+ resources: ResourceInfo[];
72
+ resourceTemplates: ResourceTemplateInfo[];
73
+ prompts: PromptInfo[];
74
+ instructions: string | null;
75
+ aguara: AguaraResult;
76
+ scanDuration: number;
77
+ }
78
+ export type ServerTarget = {
79
+ type: "stdio";
80
+ command: string;
81
+ args: string[];
82
+ } | {
83
+ type: "sse";
84
+ url: string;
85
+ } | {
86
+ type: "streamable-http";
87
+ url: string;
88
+ };
89
+ export interface DiffEntry {
90
+ kind: "added" | "removed" | "changed";
91
+ area: "tool" | "resource" | "resource-template" | "prompt" | "capability" | "instruction" | "version";
92
+ name: string;
93
+ detail?: string;
94
+ }
95
+ export interface DiffResult {
96
+ server: string;
97
+ entries: DiffEntry[];
98
+ }
99
+ export interface PolicyRule {
100
+ deny?: {
101
+ categories?: ToolCategory[];
102
+ tools?: string[];
103
+ };
104
+ require?: {
105
+ aguara?: "clean";
106
+ maxTools?: number;
107
+ };
108
+ allow?: {
109
+ tools?: string[];
110
+ };
111
+ }
112
+ export interface Policy {
113
+ rules: PolicyRule;
114
+ }
115
+ export interface PolicyViolation {
116
+ rule: string;
117
+ message: string;
118
+ severity: "error";
119
+ }
120
+ export interface PolicyResult {
121
+ passed: boolean;
122
+ violations: PolicyViolation[];
123
+ }
124
+ export interface CliOptions {
125
+ targets: ServerTarget[];
126
+ json: boolean;
127
+ markdown: string | false;
128
+ noColor: boolean;
129
+ timeout: number;
130
+ diff: string | false;
131
+ config: boolean;
132
+ failOnFindings: boolean;
133
+ policy: string | false;
134
+ }
135
+ //# 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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
package/package.json ADDED
@@ -0,0 +1,66 @@
1
+ {
2
+ "name": "mcp-sentinel",
3
+ "version": "0.1.0",
4
+ "description": "Audit and enforce security policies on MCP servers — policy engine, drift detection, CI/CD gate",
5
+ "author": "Gustavo Aragon (@oktsec)",
6
+ "license": "MIT",
7
+ "type": "module",
8
+ "bin": {
9
+ "mcp-sentinel": "bin/mcp-sentinel.js"
10
+ },
11
+ "main": "./dist/index.js",
12
+ "types": "./dist/index.d.ts",
13
+ "files": [
14
+ "dist",
15
+ "bin",
16
+ "LICENSE",
17
+ "README.md"
18
+ ],
19
+ "scripts": {
20
+ "build": "tsc",
21
+ "dev": "tsc --watch",
22
+ "lint": "eslint src/ --ext .ts",
23
+ "lint:fix": "eslint src/ --ext .ts --fix",
24
+ "typecheck": "tsc --noEmit",
25
+ "prepublishOnly": "npm run build",
26
+ "test": "vitest run",
27
+ "test:watch": "vitest"
28
+ },
29
+ "dependencies": {
30
+ "@modelcontextprotocol/sdk": "^1.12.1",
31
+ "chalk": "^5.4.1",
32
+ "yaml": "^2.8.2"
33
+ },
34
+ "devDependencies": {
35
+ "@types/node": "^22.13.10",
36
+ "@typescript-eslint/eslint-plugin": "^8.26.1",
37
+ "@typescript-eslint/parser": "^8.26.1",
38
+ "eslint": "^8.57.1",
39
+ "typescript": "^5.8.2",
40
+ "vitest": "^3.0.9"
41
+ },
42
+ "engines": {
43
+ "node": ">=18.0.0"
44
+ },
45
+ "repository": {
46
+ "type": "git",
47
+ "url": "git+https://github.com/oktsec/mcp-sentinel.git"
48
+ },
49
+ "keywords": [
50
+ "mcp",
51
+ "model-context-protocol",
52
+ "security",
53
+ "policy",
54
+ "scanner",
55
+ "audit",
56
+ "cli",
57
+ "ai-safety",
58
+ "aguara",
59
+ "llm",
60
+ "ai-agents"
61
+ ],
62
+ "homepage": "https://github.com/oktsec/mcp-sentinel#readme",
63
+ "bugs": {
64
+ "url": "https://github.com/oktsec/mcp-sentinel/issues"
65
+ }
66
+ }