@kryptosai/mcp-observatory 0.20.3 → 0.22.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 (71) hide show
  1. package/COMMERCIAL.md +67 -0
  2. package/PRIVACY.md +52 -0
  3. package/README.md +100 -4
  4. package/TERMS.md +30 -0
  5. package/dist/src/checks/resources.js +9 -19
  6. package/dist/src/checks/resources.js.map +1 -1
  7. package/dist/src/checks/security-rules.js.map +1 -1
  8. package/dist/src/checks/security.js +33 -14
  9. package/dist/src/checks/security.js.map +1 -1
  10. package/dist/src/checks/tools-invoke.js.map +1 -1
  11. package/dist/src/checks/tools.js.map +1 -1
  12. package/dist/src/ci-issue.js +3 -1
  13. package/dist/src/ci-issue.js.map +1 -1
  14. package/dist/src/cli.js +48 -1
  15. package/dist/src/cli.js.map +1 -1
  16. package/dist/src/commands/ci-report.js +4 -0
  17. package/dist/src/commands/ci-report.js.map +1 -1
  18. package/dist/src/commands/enterprise-report.d.ts +12 -0
  19. package/dist/src/commands/enterprise-report.js +192 -0
  20. package/dist/src/commands/enterprise-report.js.map +1 -0
  21. package/dist/src/commands/init-ci.d.ts +31 -0
  22. package/dist/src/commands/init-ci.js +238 -0
  23. package/dist/src/commands/init-ci.js.map +1 -0
  24. package/dist/src/commands/scan.js +4 -0
  25. package/dist/src/commands/scan.js.map +1 -1
  26. package/dist/src/commands/score.js +2 -0
  27. package/dist/src/commands/score.js.map +1 -1
  28. package/dist/src/commands/telemetry.js +47 -2
  29. package/dist/src/commands/telemetry.js.map +1 -1
  30. package/dist/src/commands/test.js +11 -5
  31. package/dist/src/commands/test.js.map +1 -1
  32. package/dist/src/commercial.d.ts +5 -0
  33. package/dist/src/commercial.js +46 -0
  34. package/dist/src/commercial.js.map +1 -0
  35. package/dist/src/reporters/common.d.ts +16 -0
  36. package/dist/src/reporters/common.js +76 -0
  37. package/dist/src/reporters/common.js.map +1 -1
  38. package/dist/src/reporters/html.js +20 -0
  39. package/dist/src/reporters/html.js.map +1 -1
  40. package/dist/src/reporters/markdown.js +14 -2
  41. package/dist/src/reporters/markdown.js.map +1 -1
  42. package/dist/src/reporters/pr-comment.js +18 -1
  43. package/dist/src/reporters/pr-comment.js.map +1 -1
  44. package/dist/src/reporters/terminal.js +9 -1
  45. package/dist/src/reporters/terminal.js.map +1 -1
  46. package/dist/src/runner.js +1 -1
  47. package/dist/src/runner.js.map +1 -1
  48. package/dist/src/telemetry.d.ts +27 -0
  49. package/dist/src/telemetry.js +57 -3
  50. package/dist/src/telemetry.js.map +1 -1
  51. package/dist/src/types.d.ts +5 -0
  52. package/dist/src/validate.js +48 -5
  53. package/dist/src/validate.js.map +1 -1
  54. package/docs/architecture.md +32 -0
  55. package/docs/certification-campaign-template.md +181 -0
  56. package/docs/certification-distribution.md +129 -0
  57. package/docs/compatibility.md +164 -0
  58. package/docs/decisions.md +23 -0
  59. package/docs/demo.svg +59 -0
  60. package/docs/directory-listing-copy.md +78 -0
  61. package/docs/distribution-launch.md +76 -0
  62. package/docs/enterprise-outreach-playbook.md +83 -0
  63. package/docs/feishu-lark-mcp.md +65 -0
  64. package/docs/known-issues.md +27 -0
  65. package/docs/mcp-safety-report-latest.md +85 -0
  66. package/docs/project-case-study.md +106 -0
  67. package/docs/proof.md +68 -0
  68. package/docs/publish-readiness.md +77 -0
  69. package/package.json +33 -18
  70. package/schemas/diff-artifact.schema.json +62 -66
  71. package/schemas/run-artifact.schema.json +107 -142
@@ -17,92 +17,73 @@
17
17
  "checks"
18
18
  ],
19
19
  "properties": {
20
- "artifactType": {
21
- "const": "run"
22
- },
23
- "schemaVersion": {
24
- "const": "1.0.0"
25
- },
26
- "gate": {
27
- "$ref": "#/definitions/gate"
28
- },
29
- "runId": {
30
- "type": "string"
31
- },
32
- "createdAt": {
33
- "type": "string"
34
- },
35
- "toolVersion": {
36
- "type": "string"
37
- },
38
- "target": {
39
- "$ref": "#/definitions/targetSnapshot"
40
- },
41
- "environment": {
42
- "$ref": "#/definitions/environmentSnapshot"
43
- },
44
- "summary": {
45
- "$ref": "#/definitions/runSummary"
46
- },
20
+ "artifactType": { "const": "run" },
21
+ "schemaVersion": { "const": "1.0.0" },
22
+ "gate": { "$ref": "#/definitions/gate" },
23
+ "runId": { "type": "string" },
24
+ "createdAt": { "type": "string" },
25
+ "toolVersion": { "type": "string" },
26
+ "target": { "$ref": "#/definitions/targetSnapshot" },
27
+ "environment": { "$ref": "#/definitions/environmentSnapshot" },
28
+ "summary": { "$ref": "#/definitions/runSummary" },
47
29
  "checks": {
48
30
  "type": "array",
49
- "items": {
50
- "$ref": "#/definitions/checkResult"
51
- }
31
+ "items": { "$ref": "#/definitions/checkResult" }
52
32
  },
53
- "fatalError": {
54
- "type": "string"
55
- }
33
+ "healthScore": { "$ref": "#/definitions/healthScore" },
34
+ "performanceMetrics": { "$ref": "#/definitions/performanceMetrics" },
35
+ "fatalError": { "type": "string" }
56
36
  },
57
37
  "definitions": {
58
- "gate": {
59
- "type": "string",
60
- "enum": ["pass", "fail"]
61
- },
38
+ "gate": { "type": "string", "enum": ["pass", "fail"] },
62
39
  "checkStatus": {
63
40
  "type": "string",
64
41
  "enum": ["pass", "fail", "partial", "unsupported", "flaky", "skipped"]
65
42
  },
66
43
  "checkId": {
67
44
  "type": "string",
68
- "enum": ["tools", "prompts", "resources"]
45
+ "enum": [
46
+ "tools",
47
+ "prompts",
48
+ "resources",
49
+ "tools-invoke",
50
+ "security",
51
+ "security-lite",
52
+ "conformance",
53
+ "schema-quality"
54
+ ]
69
55
  },
70
56
  "evidenceSummary": {
71
57
  "type": "object",
72
58
  "additionalProperties": false,
73
- "required": [
74
- "endpoint",
75
- "advertised",
76
- "responded",
77
- "minimalShapePresent"
78
- ],
59
+ "required": ["endpoint", "advertised", "responded", "minimalShapePresent"],
79
60
  "properties": {
80
- "endpoint": {
81
- "type": "string"
82
- },
83
- "advertised": {
84
- "type": "boolean"
85
- },
86
- "responded": {
87
- "type": "boolean"
88
- },
89
- "minimalShapePresent": {
90
- "type": "boolean"
91
- },
92
- "itemCount": {
93
- "type": "integer",
94
- "minimum": 0
95
- },
61
+ "endpoint": { "type": "string" },
62
+ "advertised": { "type": "boolean" },
63
+ "responded": { "type": "boolean" },
64
+ "minimalShapePresent": { "type": "boolean" },
65
+ "itemCount": { "type": "integer", "minimum": 0 },
96
66
  "identifiers": {
97
67
  "type": "array",
98
- "items": {
99
- "type": "string"
100
- }
68
+ "items": { "type": "string" }
101
69
  },
102
70
  "diagnostics": {
71
+ "type": "array",
72
+ "items": { "type": "string" }
73
+ },
74
+ "schemas": {
75
+ "type": "object",
76
+ "additionalProperties": { "type": "object" }
77
+ },
78
+ "responseSnapshots": {
79
+ "type": "object",
80
+ "additionalProperties": true
81
+ },
82
+ "findings": {
103
83
  "type": "array",
104
84
  "items": {
105
- "type": "string"
85
+ "type": "object",
86
+ "additionalProperties": true
106
87
  }
107
88
  }
108
89
  }
@@ -110,51 +91,23 @@
110
91
  "checkResult": {
111
92
  "type": "object",
112
93
  "additionalProperties": false,
113
- "required": [
114
- "id",
115
- "capability",
116
- "status",
117
- "durationMs",
118
- "message",
119
- "evidence"
120
- ],
94
+ "required": ["id", "capability", "status", "durationMs", "message", "evidence"],
121
95
  "properties": {
122
- "id": {
123
- "$ref": "#/definitions/checkId"
124
- },
125
- "capability": {
126
- "$ref": "#/definitions/checkId"
127
- },
128
- "status": {
129
- "$ref": "#/definitions/checkStatus"
130
- },
131
- "durationMs": {
132
- "type": "number",
133
- "minimum": 0
134
- },
135
- "message": {
136
- "type": "string"
137
- },
96
+ "id": { "$ref": "#/definitions/checkId" },
97
+ "capability": { "$ref": "#/definitions/checkId" },
98
+ "status": { "$ref": "#/definitions/checkStatus" },
99
+ "durationMs": { "type": "number", "minimum": 0 },
100
+ "message": { "type": "string" },
138
101
  "evidence": {
139
102
  "type": "array",
140
- "items": {
141
- "$ref": "#/definitions/evidenceSummary"
142
- }
103
+ "items": { "$ref": "#/definitions/evidenceSummary" }
143
104
  }
144
105
  }
145
106
  },
146
107
  "statusCounts": {
147
108
  "type": "object",
148
109
  "additionalProperties": false,
149
- "required": [
150
- "total",
151
- "pass",
152
- "fail",
153
- "partial",
154
- "unsupported",
155
- "flaky",
156
- "skipped"
157
- ],
110
+ "required": ["total", "pass", "fail", "partial", "unsupported", "flaky", "skipped"],
158
111
  "properties": {
159
112
  "total": { "type": "integer", "minimum": 0 },
160
113
  "pass": { "type": "integer", "minimum": 0 },
@@ -168,16 +121,7 @@
168
121
  "runSummary": {
169
122
  "type": "object",
170
123
  "additionalProperties": false,
171
- "required": [
172
- "total",
173
- "pass",
174
- "fail",
175
- "partial",
176
- "unsupported",
177
- "flaky",
178
- "skipped",
179
- "gate"
180
- ],
124
+ "required": ["total", "pass", "fail", "partial", "unsupported", "flaky", "skipped", "gate"],
181
125
  "properties": {
182
126
  "total": { "type": "integer", "minimum": 0 },
183
127
  "pass": { "type": "integer", "minimum": 0 },
@@ -186,9 +130,7 @@
186
130
  "unsupported": { "type": "integer", "minimum": 0 },
187
131
  "flaky": { "type": "integer", "minimum": 0 },
188
132
  "skipped": { "type": "integer", "minimum": 0 },
189
- "gate": {
190
- "$ref": "#/definitions/gate"
191
- }
133
+ "gate": { "$ref": "#/definitions/gate" }
192
134
  }
193
135
  },
194
136
  "targetSnapshot": {
@@ -196,36 +138,21 @@
196
138
  "additionalProperties": false,
197
139
  "required": ["targetId", "adapter", "command", "args"],
198
140
  "properties": {
199
- "targetId": {
200
- "type": "string"
201
- },
202
- "adapter": {
203
- "const": "local-process"
204
- },
205
- "command": {
206
- "type": "string"
207
- },
141
+ "targetId": { "type": "string" },
142
+ "adapter": { "type": "string", "enum": ["local-process", "http"] },
143
+ "command": { "type": "string" },
208
144
  "args": {
209
145
  "type": "array",
210
- "items": {
211
- "type": "string"
212
- }
213
- },
214
- "cwd": {
215
- "type": "string"
146
+ "items": { "type": "string" }
216
147
  },
148
+ "url": { "type": "string" },
149
+ "cwd": { "type": "string" },
217
150
  "metadata": {
218
151
  "type": "object",
219
- "additionalProperties": {
220
- "type": "string"
221
- }
222
- },
223
- "serverVersion": {
224
- "type": "string"
152
+ "additionalProperties": { "type": "string" }
225
153
  },
226
- "serverName": {
227
- "type": "string"
228
- }
154
+ "serverVersion": { "type": "string" },
155
+ "serverName": { "type": "string" }
229
156
  }
230
157
  },
231
158
  "environmentSnapshot": {
@@ -233,11 +160,49 @@
233
160
  "additionalProperties": false,
234
161
  "required": ["platform", "nodeVersion"],
235
162
  "properties": {
236
- "platform": {
237
- "type": "string"
238
- },
239
- "nodeVersion": {
240
- "type": "string"
163
+ "platform": { "type": "string" },
164
+ "nodeVersion": { "type": "string" }
165
+ }
166
+ },
167
+ "scoreDimension": {
168
+ "type": "object",
169
+ "additionalProperties": false,
170
+ "required": ["name", "weight", "score", "details"],
171
+ "properties": {
172
+ "name": { "type": "string" },
173
+ "weight": { "type": "number" },
174
+ "score": { "type": "number" },
175
+ "details": {
176
+ "type": "array",
177
+ "items": { "type": "string" }
178
+ }
179
+ }
180
+ },
181
+ "healthScore": {
182
+ "type": "object",
183
+ "additionalProperties": false,
184
+ "required": ["overall", "grade", "dimensions"],
185
+ "properties": {
186
+ "overall": { "type": "number" },
187
+ "grade": { "type": "string", "enum": ["A", "B", "C", "D", "F"] },
188
+ "dimensions": {
189
+ "type": "array",
190
+ "items": { "$ref": "#/definitions/scoreDimension" }
191
+ }
192
+ }
193
+ },
194
+ "performanceMetrics": {
195
+ "type": "object",
196
+ "additionalProperties": false,
197
+ "required": ["connectMs"],
198
+ "properties": {
199
+ "connectMs": { "type": "number", "minimum": 0 },
200
+ "toolsListMs": { "type": "number", "minimum": 0 },
201
+ "promptsListMs": { "type": "number", "minimum": 0 },
202
+ "resourcesListMs": { "type": "number", "minimum": 0 },
203
+ "toolInvokeMs": {
204
+ "type": "object",
205
+ "additionalProperties": { "type": "number", "minimum": 0 }
241
206
  }
242
207
  }
243
208
  }