mcpdrift-cli 1.0.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 (47) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +428 -0
  3. package/dist/approver.d.ts +8 -0
  4. package/dist/approver.d.ts.map +1 -0
  5. package/dist/approver.js +90 -0
  6. package/dist/approver.js.map +1 -0
  7. package/dist/cli.d.ts +3 -0
  8. package/dist/cli.d.ts.map +1 -0
  9. package/dist/cli.js +103 -0
  10. package/dist/cli.js.map +1 -0
  11. package/dist/client.d.ts +23 -0
  12. package/dist/client.d.ts.map +1 -0
  13. package/dist/client.js +148 -0
  14. package/dist/client.js.map +1 -0
  15. package/dist/config.d.ts +12 -0
  16. package/dist/config.d.ts.map +1 -0
  17. package/dist/config.js +123 -0
  18. package/dist/config.js.map +1 -0
  19. package/dist/differ.d.ts +11 -0
  20. package/dist/differ.d.ts.map +1 -0
  21. package/dist/differ.js +57 -0
  22. package/dist/differ.js.map +1 -0
  23. package/dist/fsUtil.d.ts +15 -0
  24. package/dist/fsUtil.d.ts.map +1 -0
  25. package/dist/fsUtil.js +70 -0
  26. package/dist/fsUtil.js.map +1 -0
  27. package/dist/index.d.ts +10 -0
  28. package/dist/index.d.ts.map +1 -0
  29. package/dist/index.js +10 -0
  30. package/dist/index.js.map +1 -0
  31. package/dist/initializer.d.ts +10 -0
  32. package/dist/initializer.d.ts.map +1 -0
  33. package/dist/initializer.js +150 -0
  34. package/dist/initializer.js.map +1 -0
  35. package/dist/jsonPointer.d.ts +31 -0
  36. package/dist/jsonPointer.d.ts.map +1 -0
  37. package/dist/jsonPointer.js +116 -0
  38. package/dist/jsonPointer.js.map +1 -0
  39. package/dist/runner.d.ts +13 -0
  40. package/dist/runner.d.ts.map +1 -0
  41. package/dist/runner.js +283 -0
  42. package/dist/runner.js.map +1 -0
  43. package/dist/types.d.ts +66 -0
  44. package/dist/types.d.ts.map +1 -0
  45. package/dist/types.js +2 -0
  46. package/dist/types.js.map +1 -0
  47. package/package.json +58 -0
@@ -0,0 +1,66 @@
1
+ export interface McpdriftTestCase {
2
+ id?: string;
3
+ tool: string;
4
+ input?: Record<string, unknown>;
5
+ name?: string;
6
+ timeout?: number;
7
+ ignore?: string[];
8
+ }
9
+ export interface McpdriftConfig {
10
+ serverCommand: string;
11
+ testCases: McpdriftTestCase[];
12
+ snapshotDir?: string;
13
+ timeout?: number;
14
+ env?: Record<string, string>;
15
+ }
16
+ export type TestOutcome = 'PASS' | 'CHANGED' | 'FAILED' | 'BASELINE_CREATED' | 'MISSING_BASELINE';
17
+ export type FailureCategory = 'STARTUP_FAILURE' | 'CONNECTION_FAILURE' | 'TOOL_TIMEOUT' | 'TOOL_ERROR' | 'SNAPSHOT_MISMATCH' | 'MISSING_BASELINE' | 'SNAPSHOT_READ_ERROR';
18
+ export interface TestResult {
19
+ id: string;
20
+ tool: string;
21
+ status: TestOutcome;
22
+ failureCategory?: FailureCategory;
23
+ durationMs: number;
24
+ baseline?: unknown;
25
+ actual?: unknown;
26
+ diff?: string;
27
+ error?: string;
28
+ snapshotPath?: string;
29
+ ignoredPointers?: string[];
30
+ }
31
+ export interface RunSummary {
32
+ total: number;
33
+ passed: number;
34
+ changed: number;
35
+ failed: number;
36
+ baselineCreated: number;
37
+ missingBaseline: number;
38
+ results: TestResult[];
39
+ success: boolean;
40
+ }
41
+ export interface JsonReportResult {
42
+ id: string;
43
+ tool: string;
44
+ status: TestOutcome;
45
+ failureCategory?: FailureCategory;
46
+ durationMs: number;
47
+ error?: string;
48
+ snapshotPath?: string;
49
+ ignoredPointers?: string[];
50
+ }
51
+ export interface JsonReport {
52
+ timestamp: string;
53
+ serverCommand: string;
54
+ ci: boolean;
55
+ summary: {
56
+ total: number;
57
+ passed: number;
58
+ changed: number;
59
+ failed: number;
60
+ baselineCreated: number;
61
+ missingBaseline: number;
62
+ success: boolean;
63
+ };
64
+ results: JsonReportResult[];
65
+ }
66
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAC/B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,gBAAgB,EAAE,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAED,MAAM,MAAM,WAAW,GACnB,MAAM,GACN,SAAS,GACT,QAAQ,GACR,kBAAkB,GAClB,kBAAkB,CAAC;AAEvB,MAAM,MAAM,eAAe,GACvB,iBAAiB,GACjB,oBAAoB,GACpB,cAAc,GACd,YAAY,GACZ,mBAAmB,GACnB,kBAAkB,GAClB,qBAAqB,CAAC;AAE1B,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,CAAC;IACpB,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,CAAC;IACpB,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,EAAE,EAAE,OAAO,CAAC;IACZ,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,eAAe,EAAE,MAAM,CAAC;QACxB,eAAe,EAAE,MAAM,CAAC;QACxB,OAAO,EAAE,OAAO,CAAC;KAClB,CAAC;IACF,OAAO,EAAE,gBAAgB,EAAE,CAAC;CAC7B"}
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,58 @@
1
+ {
2
+ "name": "mcpdrift-cli",
3
+ "version": "1.0.0",
4
+ "description": "CI/CD regression tester and snapshot testing tool for Model Context Protocol (MCP) servers",
5
+ "type": "module",
6
+ "main": "./dist/index.js",
7
+ "types": "./dist/index.d.ts",
8
+ "bin": {
9
+ "mcpdrift": "./dist/cli.js"
10
+ },
11
+ "repository": {
12
+ "type": "git",
13
+ "url": "git+https://github.com/abdunur-dev/mcpdrift.git"
14
+ },
15
+ "homepage": "https://github.com/abdunur-dev/mcpdrift#readme",
16
+ "bugs": {
17
+ "url": "https://github.com/abdunur-dev/mcpdrift/issues"
18
+ },
19
+ "files": [
20
+ "dist",
21
+ "README.md",
22
+ "LICENSE"
23
+ ],
24
+ "scripts": {
25
+ "build": "tsc",
26
+ "prepublishOnly": "npm run build",
27
+ "lint": "tsc --noEmit",
28
+ "test": "vitest run",
29
+ "test:watch": "vitest"
30
+ },
31
+ "keywords": [
32
+ "mcp",
33
+ "model-context-protocol",
34
+ "regression-testing",
35
+ "snapshots",
36
+ "ci-cd",
37
+ "testing",
38
+ "ai",
39
+ "llm"
40
+ ],
41
+ "author": "",
42
+ "license": "MIT",
43
+ "dependencies": {
44
+ "@modelcontextprotocol/sdk": "^1.6.0",
45
+ "chalk": "^5.4.1",
46
+ "commander": "^13.1.0",
47
+ "diff": "^7.0.0"
48
+ },
49
+ "devDependencies": {
50
+ "@types/diff": "^7.0.0",
51
+ "@types/node": "^22.13.0",
52
+ "typescript": "^5.7.3",
53
+ "vitest": "^3.0.5"
54
+ },
55
+ "engines": {
56
+ "node": ">=18.0.0"
57
+ }
58
+ }