@kryptosai/mcp-observatory 0.23.0 → 0.24.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/src/commands/init-ci.d.ts +3 -0
- package/dist/src/commands/init-ci.js +24 -12
- package/dist/src/commands/init-ci.js.map +1 -1
- package/dist/src/reporters/pr-comment.js +6 -2
- package/dist/src/reporters/pr-comment.js.map +1 -1
- package/docs/certification-campaign-template.md +2 -2
- package/docs/mcp-safety-report-latest.md +12 -7
- package/docs/mcp-server-safety-index.md +56 -80
- package/docs/methodology.md +90 -0
- package/docs/metrics-dashboard.md +105 -0
- package/docs/paid-pilot-offer.md +21 -5
- package/docs/project-case-study.md +12 -8
- package/docs/proof.md +28 -15
- package/docs/public-post-drafts.md +18 -6
- package/docs/publish-readiness.md +1 -5
- package/docs/reference-evaluations.md +1 -1
- package/docs/safety-index/artifacts/antv-chart-server.json +2765 -0
- package/docs/safety-index/artifacts/antv-chart-server.md +156 -0
- package/docs/safety-index/artifacts/browsermcp-server.json +416 -0
- package/docs/safety-index/artifacts/browsermcp-server.md +163 -0
- package/docs/safety-index/artifacts/context7-server.json +286 -0
- package/docs/safety-index/artifacts/context7-server.md +163 -0
- package/docs/safety-index/artifacts/everything-server.json +482 -0
- package/docs/safety-index/artifacts/everything-server.md +163 -0
- package/docs/safety-index/artifacts/executeautomation-playwright-server.json +955 -0
- package/docs/safety-index/artifacts/executeautomation-playwright-server.md +163 -0
- package/docs/safety-index/artifacts/filesystem-server.json +583 -0
- package/docs/safety-index/artifacts/filesystem-server.md +156 -0
- package/docs/safety-index/artifacts/memory-server.json +469 -0
- package/docs/safety-index/artifacts/memory-server.md +156 -0
- package/docs/safety-index/artifacts/opentofu-server.json +387 -0
- package/docs/safety-index/artifacts/opentofu-server.md +163 -0
- package/docs/safety-index/artifacts/playwright-mcp-server.json +919 -0
- package/docs/safety-index/artifacts/playwright-mcp-server.md +156 -0
- package/docs/safety-index/artifacts/promptopia-server.json +442 -0
- package/docs/safety-index/artifacts/promptopia-server.md +156 -0
- package/docs/safety-index/artifacts/puppeteer-server.json +377 -0
- package/docs/safety-index/artifacts/puppeteer-server.md +163 -0
- package/docs/safety-index/artifacts/ref-tools-server.json +262 -0
- package/docs/safety-index/artifacts/ref-tools-server.md +156 -0
- package/docs/safety-index/artifacts/sequential-thinking-server.json +286 -0
- package/docs/safety-index/artifacts/sequential-thinking-server.md +156 -0
- package/docs/safety-index/maintainer-note-template.md +25 -0
- package/docs/safety-index/targets.json +192 -0
- package/package.json +12 -9
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
# MCP Observatory Run Report
|
|
2
|
+
|
|
3
|
+
Generated at 2026-06-24T02:07:23.256Z
|
|
4
|
+
|
|
5
|
+
## Target and Environment Metadata
|
|
6
|
+
|
|
7
|
+
- Target: `memory-server`
|
|
8
|
+
- Adapter: `local-process`
|
|
9
|
+
- Command: `npx -y @modelcontextprotocol/server-memory`
|
|
10
|
+
- Server: `memory-server 0.6.3`
|
|
11
|
+
- Platform: `darwin 25.5.0`
|
|
12
|
+
- Node: `v22.22.1`
|
|
13
|
+
|
|
14
|
+
## Executive Summary
|
|
15
|
+
|
|
16
|
+
**Health Score: 85/100 (B)**
|
|
17
|
+
|
|
18
|
+
| Dimension | Score | Weight |
|
|
19
|
+
| --- | --- | --- |
|
|
20
|
+
| Protocol Compliance | 100/100 | 30% |
|
|
21
|
+
| Schema Quality | 60/100 | 20% |
|
|
22
|
+
| Security | 100/100 | 20% |
|
|
23
|
+
| Reliability | 67/100 | 20% |
|
|
24
|
+
| Performance | 100/100 | 10% |
|
|
25
|
+
|
|
26
|
+
| Gate | Total | Pass | Fail | Partial | Unsupported | Flaky | Skipped |
|
|
27
|
+
| --- | --- | --- | --- | --- | --- | --- | --- |
|
|
28
|
+
| pass | 7 | 4 | 0 | 1 | 2 | 0 | 0 |
|
|
29
|
+
|
|
30
|
+
## At a Glance
|
|
31
|
+
|
|
32
|
+
- Safety verdict: **Needs review** — The server is usable, but caveated checks should be reviewed before agents depend on it.
|
|
33
|
+
- Top risks: schema-quality: Found 4 quality finding(s) across 9 item(s): 0 warnings, 4 info.
|
|
34
|
+
- Regression/schema drift: Run `mcp-observatory diff <previous-run.json> <current-run.json>` to classify regressions and schema drift.
|
|
35
|
+
- Failing checks: none
|
|
36
|
+
- Partial or flaky checks: schema-quality
|
|
37
|
+
- Skipped checks: none
|
|
38
|
+
- Unsupported checks: prompts, resources
|
|
39
|
+
- Suggested next step: Review the caveated checks next: schema-quality.
|
|
40
|
+
- CI next step: `Add CI: npx @kryptosai/mcp-observatory init-ci --all --command "npx -y <server-package>"`
|
|
41
|
+
|
|
42
|
+
## Regressions and Recoveries
|
|
43
|
+
|
|
44
|
+
_Use the `diff` command against another run artifact to classify regressions and recoveries over time._
|
|
45
|
+
|
|
46
|
+
## Full Capability Status Table
|
|
47
|
+
|
|
48
|
+
| Focus | Check | Status | Duration (ms) | Message |
|
|
49
|
+
| --- | --- | --- | --- | --- |
|
|
50
|
+
| healthy | conformance | pass | 9.77 | All 7 conformance checks passed. |
|
|
51
|
+
| healthy | security | pass | 4.10 | No security issues detected. |
|
|
52
|
+
| healthy | security-lite | pass | 0.04 | No security issues detected (lightweight scan). |
|
|
53
|
+
| healthy | tools | pass | 7.44 | Advertised capability responded with the minimal expected shape (9 items). |
|
|
54
|
+
| review | schema-quality | partial | 4.15 | Found 4 quality finding(s) across 9 item(s): 0 warnings, 4 info. |
|
|
55
|
+
| confirm intent | prompts | unsupported | 0.00 | Prompts are not advertised by the target. |
|
|
56
|
+
| confirm intent | resources | unsupported | 0.00 | Resources are not advertised by the target. |
|
|
57
|
+
|
|
58
|
+
## Evidence Snippets
|
|
59
|
+
|
|
60
|
+
### conformance — pass
|
|
61
|
+
|
|
62
|
+
Summary: All 7 conformance checks passed.
|
|
63
|
+
|
|
64
|
+
- Endpoint: `conformance/check`
|
|
65
|
+
- Advertised: `true`
|
|
66
|
+
- Responded: `true`
|
|
67
|
+
- Minimal shape present: `true`
|
|
68
|
+
- Item count: `7`
|
|
69
|
+
- Identifiers: none
|
|
70
|
+
- Diagnostics: [pass] capabilities-present: Server returned capabilities object., [pass] server-info: Server provided initialization info., [pass] tools-capability-match: tools/list returned 9 tool(s). (+4 more)
|
|
71
|
+
|
|
72
|
+
### security — pass
|
|
73
|
+
|
|
74
|
+
Summary: No security issues detected.
|
|
75
|
+
|
|
76
|
+
- Endpoint: `security/scan`
|
|
77
|
+
- Advertised: `true`
|
|
78
|
+
- Responded: `true`
|
|
79
|
+
- Minimal shape present: `true`
|
|
80
|
+
- Item count: `0`
|
|
81
|
+
- Identifiers: none
|
|
82
|
+
- Diagnostics: none
|
|
83
|
+
|
|
84
|
+
### security-lite — pass
|
|
85
|
+
|
|
86
|
+
Summary: No security issues detected (lightweight scan).
|
|
87
|
+
|
|
88
|
+
- Endpoint: `security/scan-lite`
|
|
89
|
+
- Advertised: `true`
|
|
90
|
+
- Responded: `true`
|
|
91
|
+
- Minimal shape present: `true`
|
|
92
|
+
- Item count: `0`
|
|
93
|
+
- Identifiers: none
|
|
94
|
+
- Diagnostics: none
|
|
95
|
+
|
|
96
|
+
### tools — pass
|
|
97
|
+
|
|
98
|
+
Summary: Advertised capability responded with the minimal expected shape (9 items).
|
|
99
|
+
|
|
100
|
+
- Endpoint: `tools/list`
|
|
101
|
+
- Advertised: `true`
|
|
102
|
+
- Responded: `true`
|
|
103
|
+
- Minimal shape present: `true`
|
|
104
|
+
- Item count: `9`
|
|
105
|
+
- Identifiers: create_entities, create_relations, add_observations, delete_entities, delete_observations (+4 more)
|
|
106
|
+
- Diagnostics: Knowledge Graph MCP Server running on stdio
|
|
107
|
+
|
|
108
|
+
### schema-quality — partial
|
|
109
|
+
|
|
110
|
+
Summary: Found 4 quality finding(s) across 9 item(s): 0 warnings, 4 info.
|
|
111
|
+
|
|
112
|
+
- Endpoint: `schema-quality/scan`
|
|
113
|
+
- Advertised: `true`
|
|
114
|
+
- Responded: `true`
|
|
115
|
+
- Minimal shape present: `true`
|
|
116
|
+
- Item count: `4`
|
|
117
|
+
- Identifiers: create_entities, create_relations, add_observations, delete_observations
|
|
118
|
+
- Diagnostics: [info] tool "create_entities": Property 'entities' missing description, [info] tool "create_relations": Property 'relations' missing description, [info] tool "add_observations": Property 'observations' missing description (+1 more)
|
|
119
|
+
|
|
120
|
+
### prompts — unsupported
|
|
121
|
+
|
|
122
|
+
Summary: Prompts are not advertised by the target.
|
|
123
|
+
|
|
124
|
+
- Endpoint: `prompts/list`
|
|
125
|
+
- Advertised: `false`
|
|
126
|
+
- Responded: `false`
|
|
127
|
+
- Minimal shape present: `false`
|
|
128
|
+
- Item count: `0`
|
|
129
|
+
- Identifiers: none
|
|
130
|
+
- Diagnostics: none
|
|
131
|
+
|
|
132
|
+
### resources — unsupported
|
|
133
|
+
|
|
134
|
+
Summary: Resources are not advertised by the target.
|
|
135
|
+
|
|
136
|
+
- Endpoint: `resources/list | resources/templates/list`
|
|
137
|
+
- Advertised: `false`
|
|
138
|
+
- Responded: `false`
|
|
139
|
+
- Minimal shape present: `false`
|
|
140
|
+
- Item count: `0`
|
|
141
|
+
- Identifiers: none
|
|
142
|
+
- Diagnostics: none
|
|
143
|
+
|
|
144
|
+
## Reproduction Commands
|
|
145
|
+
|
|
146
|
+
```bash
|
|
147
|
+
npm run cli -- run --target <path-to-target-config.json>
|
|
148
|
+
npm run cli -- report --run <path-to-run-artifact.json> --format markdown
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
## Artifact Provenance
|
|
152
|
+
|
|
153
|
+
- Artifact type: `run`
|
|
154
|
+
- Schema version: `1.0.0`
|
|
155
|
+
- Run ID: `run_2026-06-24T020723256Z_467de620`
|
|
156
|
+
- Gate: `pass`
|
|
@@ -0,0 +1,387 @@
|
|
|
1
|
+
{
|
|
2
|
+
"artifactType": "run",
|
|
3
|
+
"schemaVersion": "1.0.0",
|
|
4
|
+
"gate": "pass",
|
|
5
|
+
"runId": "run_2026-06-24T020729328Z_2a54782d",
|
|
6
|
+
"createdAt": "2026-06-24T02:07:29.328Z",
|
|
7
|
+
"toolVersion": "0.24.0",
|
|
8
|
+
"target": {
|
|
9
|
+
"targetId": "opentofu-server",
|
|
10
|
+
"adapter": "local-process",
|
|
11
|
+
"command": "npx",
|
|
12
|
+
"args": [
|
|
13
|
+
"-y",
|
|
14
|
+
"@opentofu/opentofu-mcp-server"
|
|
15
|
+
],
|
|
16
|
+
"cwd": ".",
|
|
17
|
+
"metadata": {
|
|
18
|
+
"package": "@opentofu/opentofu-mcp-server",
|
|
19
|
+
"purpose": "mcp-safety-index",
|
|
20
|
+
"riskClass": "Infrastructure-as-code",
|
|
21
|
+
"failureClass": "Infrastructure tool surface",
|
|
22
|
+
"whyItMatters": "Infrastructure tools can influence production configuration and should have reviewable MCP surfaces."
|
|
23
|
+
},
|
|
24
|
+
"serverName": "opentofu",
|
|
25
|
+
"serverVersion": "0.1.0"
|
|
26
|
+
},
|
|
27
|
+
"environment": {
|
|
28
|
+
"platform": "darwin 25.5.0",
|
|
29
|
+
"nodeVersion": "v22.22.1"
|
|
30
|
+
},
|
|
31
|
+
"summary": {
|
|
32
|
+
"total": 7,
|
|
33
|
+
"pass": 5,
|
|
34
|
+
"fail": 0,
|
|
35
|
+
"partial": 1,
|
|
36
|
+
"unsupported": 1,
|
|
37
|
+
"flaky": 0,
|
|
38
|
+
"skipped": 0,
|
|
39
|
+
"gate": "pass"
|
|
40
|
+
},
|
|
41
|
+
"checks": [
|
|
42
|
+
{
|
|
43
|
+
"id": "tools",
|
|
44
|
+
"capability": "tools",
|
|
45
|
+
"status": "pass",
|
|
46
|
+
"durationMs": 2.47979099999975,
|
|
47
|
+
"message": "Advertised capability responded with the minimal expected shape (5 items).",
|
|
48
|
+
"evidence": [
|
|
49
|
+
{
|
|
50
|
+
"endpoint": "tools/list",
|
|
51
|
+
"advertised": true,
|
|
52
|
+
"responded": true,
|
|
53
|
+
"minimalShapePresent": true,
|
|
54
|
+
"itemCount": 5,
|
|
55
|
+
"identifiers": [
|
|
56
|
+
"search-opentofu-registry",
|
|
57
|
+
"get-provider-details",
|
|
58
|
+
"get-module-details",
|
|
59
|
+
"get-resource-docs",
|
|
60
|
+
"get-datasource-docs"
|
|
61
|
+
],
|
|
62
|
+
"diagnostics": [],
|
|
63
|
+
"schemas": {
|
|
64
|
+
"search-opentofu-registry": {
|
|
65
|
+
"type": "object",
|
|
66
|
+
"properties": {
|
|
67
|
+
"query": {
|
|
68
|
+
"type": "string",
|
|
69
|
+
"minLength": 2,
|
|
70
|
+
"description": "Search query for finding OpenTofu components (e.g., 'aws', 'kubernetes', 'database', 's3')"
|
|
71
|
+
},
|
|
72
|
+
"type": {
|
|
73
|
+
"type": "string",
|
|
74
|
+
"enum": [
|
|
75
|
+
"provider",
|
|
76
|
+
"module",
|
|
77
|
+
"resource",
|
|
78
|
+
"data-source",
|
|
79
|
+
"all"
|
|
80
|
+
],
|
|
81
|
+
"default": "all",
|
|
82
|
+
"description": "Type of registry items to search for"
|
|
83
|
+
}
|
|
84
|
+
},
|
|
85
|
+
"required": [
|
|
86
|
+
"query"
|
|
87
|
+
],
|
|
88
|
+
"additionalProperties": false,
|
|
89
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
90
|
+
},
|
|
91
|
+
"get-provider-details": {
|
|
92
|
+
"type": "object",
|
|
93
|
+
"properties": {
|
|
94
|
+
"namespace": {
|
|
95
|
+
"type": "string",
|
|
96
|
+
"minLength": 1,
|
|
97
|
+
"description": "Provider namespace (e.g., 'hashicorp', 'opentofu')"
|
|
98
|
+
},
|
|
99
|
+
"name": {
|
|
100
|
+
"type": "string",
|
|
101
|
+
"minLength": 1,
|
|
102
|
+
"description": "Provider name WITHOUT 'terraform-provider-' prefix (e.g., 'aws', 'kubernetes', 'azurerm')"
|
|
103
|
+
}
|
|
104
|
+
},
|
|
105
|
+
"required": [
|
|
106
|
+
"namespace",
|
|
107
|
+
"name"
|
|
108
|
+
],
|
|
109
|
+
"additionalProperties": false,
|
|
110
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
111
|
+
},
|
|
112
|
+
"get-module-details": {
|
|
113
|
+
"type": "object",
|
|
114
|
+
"properties": {
|
|
115
|
+
"namespace": {
|
|
116
|
+
"type": "string",
|
|
117
|
+
"minLength": 1,
|
|
118
|
+
"description": "Module namespace without prefix (e.g., 'terraform-aws-modules')"
|
|
119
|
+
},
|
|
120
|
+
"name": {
|
|
121
|
+
"type": "string",
|
|
122
|
+
"minLength": 1,
|
|
123
|
+
"description": "Simple module name WITHOUT 'terraform-aws-' or similar prefix (e.g., 'vpc', 's3-bucket')"
|
|
124
|
+
},
|
|
125
|
+
"target": {
|
|
126
|
+
"type": "string",
|
|
127
|
+
"minLength": 1,
|
|
128
|
+
"description": "Module target platform (e.g., 'aws', 'kubernetes', 'azurerm')"
|
|
129
|
+
}
|
|
130
|
+
},
|
|
131
|
+
"required": [
|
|
132
|
+
"namespace",
|
|
133
|
+
"name",
|
|
134
|
+
"target"
|
|
135
|
+
],
|
|
136
|
+
"additionalProperties": false,
|
|
137
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
138
|
+
},
|
|
139
|
+
"get-resource-docs": {
|
|
140
|
+
"type": "object",
|
|
141
|
+
"properties": {
|
|
142
|
+
"namespace": {
|
|
143
|
+
"type": "string",
|
|
144
|
+
"minLength": 1,
|
|
145
|
+
"description": "Provider namespace (e.g., 'hashicorp', 'opentofu')"
|
|
146
|
+
},
|
|
147
|
+
"name": {
|
|
148
|
+
"type": "string",
|
|
149
|
+
"minLength": 1,
|
|
150
|
+
"description": "Provider name WITHOUT 'terraform-provider-' prefix (e.g., 'aws', 'kubernetes')"
|
|
151
|
+
},
|
|
152
|
+
"resource": {
|
|
153
|
+
"type": "string",
|
|
154
|
+
"minLength": 1,
|
|
155
|
+
"description": "Resource name WITHOUT provider prefix (e.g., 's3_bucket', 'instance')"
|
|
156
|
+
},
|
|
157
|
+
"version": {
|
|
158
|
+
"type": "string",
|
|
159
|
+
"description": "Provider version (e.g., 'v4.0.0'). If not specified, latest version will be used"
|
|
160
|
+
}
|
|
161
|
+
},
|
|
162
|
+
"required": [
|
|
163
|
+
"namespace",
|
|
164
|
+
"name",
|
|
165
|
+
"resource"
|
|
166
|
+
],
|
|
167
|
+
"additionalProperties": false,
|
|
168
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
169
|
+
},
|
|
170
|
+
"get-datasource-docs": {
|
|
171
|
+
"type": "object",
|
|
172
|
+
"properties": {
|
|
173
|
+
"namespace": {
|
|
174
|
+
"type": "string",
|
|
175
|
+
"minLength": 1,
|
|
176
|
+
"description": "Provider namespace (e.g., 'hashicorp', 'opentofu')"
|
|
177
|
+
},
|
|
178
|
+
"name": {
|
|
179
|
+
"type": "string",
|
|
180
|
+
"minLength": 1,
|
|
181
|
+
"description": "Provider name WITHOUT 'terraform-provider-' prefix (e.g., 'aws', 'kubernetes')"
|
|
182
|
+
},
|
|
183
|
+
"dataSource": {
|
|
184
|
+
"type": "string",
|
|
185
|
+
"minLength": 1,
|
|
186
|
+
"description": "Data source name WITHOUT provider prefix (e.g., 'ami', 'vpc')"
|
|
187
|
+
},
|
|
188
|
+
"version": {
|
|
189
|
+
"type": "string",
|
|
190
|
+
"description": "Provider version (e.g., 'v4.0.0'). If not specified, latest version will be used"
|
|
191
|
+
}
|
|
192
|
+
},
|
|
193
|
+
"required": [
|
|
194
|
+
"namespace",
|
|
195
|
+
"name",
|
|
196
|
+
"dataSource"
|
|
197
|
+
],
|
|
198
|
+
"additionalProperties": false,
|
|
199
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
]
|
|
204
|
+
},
|
|
205
|
+
{
|
|
206
|
+
"id": "prompts",
|
|
207
|
+
"capability": "prompts",
|
|
208
|
+
"status": "unsupported",
|
|
209
|
+
"durationMs": 0.0038340000010066433,
|
|
210
|
+
"message": "Prompts are not advertised by the target.",
|
|
211
|
+
"evidence": [
|
|
212
|
+
{
|
|
213
|
+
"endpoint": "prompts/list",
|
|
214
|
+
"advertised": false,
|
|
215
|
+
"responded": false,
|
|
216
|
+
"minimalShapePresent": false,
|
|
217
|
+
"diagnostics": []
|
|
218
|
+
}
|
|
219
|
+
]
|
|
220
|
+
},
|
|
221
|
+
{
|
|
222
|
+
"id": "resources",
|
|
223
|
+
"capability": "resources",
|
|
224
|
+
"status": "pass",
|
|
225
|
+
"durationMs": 1.4208330000001297,
|
|
226
|
+
"message": "Advertised capability responded with the minimal expected shape (1 items).",
|
|
227
|
+
"evidence": [
|
|
228
|
+
{
|
|
229
|
+
"endpoint": "resources/list",
|
|
230
|
+
"advertised": true,
|
|
231
|
+
"responded": true,
|
|
232
|
+
"minimalShapePresent": true,
|
|
233
|
+
"itemCount": 1,
|
|
234
|
+
"identifiers": [
|
|
235
|
+
"opentofu:registry-info"
|
|
236
|
+
],
|
|
237
|
+
"diagnostics": []
|
|
238
|
+
},
|
|
239
|
+
{
|
|
240
|
+
"endpoint": "resources/templates/list",
|
|
241
|
+
"advertised": true,
|
|
242
|
+
"responded": true,
|
|
243
|
+
"minimalShapePresent": true,
|
|
244
|
+
"itemCount": 0,
|
|
245
|
+
"identifiers": [],
|
|
246
|
+
"diagnostics": []
|
|
247
|
+
}
|
|
248
|
+
]
|
|
249
|
+
},
|
|
250
|
+
{
|
|
251
|
+
"id": "security-lite",
|
|
252
|
+
"capability": "security-lite",
|
|
253
|
+
"status": "pass",
|
|
254
|
+
"durationMs": 0.03974999999991269,
|
|
255
|
+
"message": "No security issues detected (lightweight scan).",
|
|
256
|
+
"evidence": [
|
|
257
|
+
{
|
|
258
|
+
"endpoint": "security/scan-lite",
|
|
259
|
+
"advertised": true,
|
|
260
|
+
"responded": true,
|
|
261
|
+
"minimalShapePresent": true,
|
|
262
|
+
"itemCount": 0
|
|
263
|
+
}
|
|
264
|
+
]
|
|
265
|
+
},
|
|
266
|
+
{
|
|
267
|
+
"id": "conformance",
|
|
268
|
+
"capability": "conformance",
|
|
269
|
+
"status": "pass",
|
|
270
|
+
"durationMs": 2.5802920000005543,
|
|
271
|
+
"message": "All 7 conformance checks passed.",
|
|
272
|
+
"evidence": [
|
|
273
|
+
{
|
|
274
|
+
"endpoint": "conformance/check",
|
|
275
|
+
"advertised": true,
|
|
276
|
+
"responded": true,
|
|
277
|
+
"minimalShapePresent": true,
|
|
278
|
+
"itemCount": 7,
|
|
279
|
+
"identifiers": [],
|
|
280
|
+
"diagnostics": [
|
|
281
|
+
"[pass] capabilities-present: Server returned capabilities object.",
|
|
282
|
+
"[pass] server-info: Server provided initialization info.",
|
|
283
|
+
"[pass] tools-capability-match: tools/list returned 5 tool(s).",
|
|
284
|
+
"[pass] prompts-capability-match: Prompts not advertised — endpoint check skipped.",
|
|
285
|
+
"[pass] resources-capability-match: resources/list returned 1 resource(s).",
|
|
286
|
+
"[pass] tool-response-content: No safe tool to invoke — content validation skipped.",
|
|
287
|
+
"[pass] error-handling: Server returned proper error code -32601 for unknown method."
|
|
288
|
+
]
|
|
289
|
+
}
|
|
290
|
+
]
|
|
291
|
+
},
|
|
292
|
+
{
|
|
293
|
+
"id": "schema-quality",
|
|
294
|
+
"capability": "schema-quality",
|
|
295
|
+
"status": "partial",
|
|
296
|
+
"durationMs": 0.7996249999996508,
|
|
297
|
+
"message": "Found 1 quality finding(s) across 6 item(s): 1 warnings, 0 info.",
|
|
298
|
+
"evidence": [
|
|
299
|
+
{
|
|
300
|
+
"endpoint": "schema-quality/scan",
|
|
301
|
+
"advertised": true,
|
|
302
|
+
"responded": true,
|
|
303
|
+
"minimalShapePresent": true,
|
|
304
|
+
"itemCount": 1,
|
|
305
|
+
"identifiers": [
|
|
306
|
+
"opentofu-registry-info"
|
|
307
|
+
],
|
|
308
|
+
"diagnostics": [
|
|
309
|
+
"[warning] resource \"opentofu-registry-info\": Missing description"
|
|
310
|
+
]
|
|
311
|
+
}
|
|
312
|
+
]
|
|
313
|
+
},
|
|
314
|
+
{
|
|
315
|
+
"id": "security",
|
|
316
|
+
"capability": "security",
|
|
317
|
+
"status": "pass",
|
|
318
|
+
"durationMs": 0.36629200000061246,
|
|
319
|
+
"message": "No security issues detected.",
|
|
320
|
+
"evidence": [
|
|
321
|
+
{
|
|
322
|
+
"endpoint": "security/scan",
|
|
323
|
+
"advertised": true,
|
|
324
|
+
"responded": true,
|
|
325
|
+
"minimalShapePresent": true,
|
|
326
|
+
"itemCount": 0
|
|
327
|
+
}
|
|
328
|
+
]
|
|
329
|
+
}
|
|
330
|
+
],
|
|
331
|
+
"healthScore": {
|
|
332
|
+
"overall": 89,
|
|
333
|
+
"grade": "B",
|
|
334
|
+
"dimensions": [
|
|
335
|
+
{
|
|
336
|
+
"name": "Protocol Compliance",
|
|
337
|
+
"weight": 0.3,
|
|
338
|
+
"score": 100,
|
|
339
|
+
"details": [
|
|
340
|
+
"conformance: pass (100/100)"
|
|
341
|
+
]
|
|
342
|
+
},
|
|
343
|
+
{
|
|
344
|
+
"name": "Schema Quality",
|
|
345
|
+
"weight": 0.2,
|
|
346
|
+
"score": 60,
|
|
347
|
+
"details": [
|
|
348
|
+
"schema-quality: partial (60/100)"
|
|
349
|
+
]
|
|
350
|
+
},
|
|
351
|
+
{
|
|
352
|
+
"name": "Security",
|
|
353
|
+
"weight": 0.2,
|
|
354
|
+
"score": 100,
|
|
355
|
+
"details": [
|
|
356
|
+
"security-lite: pass (100/100)",
|
|
357
|
+
"security: pass (100/100)"
|
|
358
|
+
]
|
|
359
|
+
},
|
|
360
|
+
{
|
|
361
|
+
"name": "Reliability",
|
|
362
|
+
"weight": 0.2,
|
|
363
|
+
"score": 83,
|
|
364
|
+
"details": [
|
|
365
|
+
"tools: pass (100/100)",
|
|
366
|
+
"prompts: unsupported (50/100)",
|
|
367
|
+
"resources: pass (100/100)"
|
|
368
|
+
]
|
|
369
|
+
},
|
|
370
|
+
{
|
|
371
|
+
"name": "Performance",
|
|
372
|
+
"weight": 0.1,
|
|
373
|
+
"score": 100,
|
|
374
|
+
"details": [
|
|
375
|
+
"Connect: 940ms",
|
|
376
|
+
"p95 latency: 2ms (3 operations)"
|
|
377
|
+
]
|
|
378
|
+
}
|
|
379
|
+
]
|
|
380
|
+
},
|
|
381
|
+
"performanceMetrics": {
|
|
382
|
+
"connectMs": 940.4044579999991,
|
|
383
|
+
"toolsListMs": 2.47979099999975,
|
|
384
|
+
"promptsListMs": 0.0038340000010066433,
|
|
385
|
+
"resourcesListMs": 1.4208330000001297
|
|
386
|
+
}
|
|
387
|
+
}
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
# MCP Observatory Run Report
|
|
2
|
+
|
|
3
|
+
Generated at 2026-06-24T02:07:29.328Z
|
|
4
|
+
|
|
5
|
+
## Target and Environment Metadata
|
|
6
|
+
|
|
7
|
+
- Target: `opentofu-server`
|
|
8
|
+
- Adapter: `local-process`
|
|
9
|
+
- Command: `npx -y @opentofu/opentofu-mcp-server`
|
|
10
|
+
- Server: `opentofu 0.1.0`
|
|
11
|
+
- Platform: `darwin 25.5.0`
|
|
12
|
+
- Node: `v22.22.1`
|
|
13
|
+
|
|
14
|
+
## Executive Summary
|
|
15
|
+
|
|
16
|
+
**Health Score: 89/100 (B)**
|
|
17
|
+
|
|
18
|
+
| Dimension | Score | Weight |
|
|
19
|
+
| --- | --- | --- |
|
|
20
|
+
| Protocol Compliance | 100/100 | 30% |
|
|
21
|
+
| Schema Quality | 60/100 | 20% |
|
|
22
|
+
| Security | 100/100 | 20% |
|
|
23
|
+
| Reliability | 83/100 | 20% |
|
|
24
|
+
| Performance | 100/100 | 10% |
|
|
25
|
+
|
|
26
|
+
| Gate | Total | Pass | Fail | Partial | Unsupported | Flaky | Skipped |
|
|
27
|
+
| --- | --- | --- | --- | --- | --- | --- | --- |
|
|
28
|
+
| pass | 7 | 5 | 0 | 1 | 1 | 0 | 0 |
|
|
29
|
+
|
|
30
|
+
## At a Glance
|
|
31
|
+
|
|
32
|
+
- Safety verdict: **Needs review** — The server is usable, but caveated checks should be reviewed before agents depend on it.
|
|
33
|
+
- Top risks: schema-quality: Found 1 quality finding(s) across 6 item(s): 1 warnings, 0 info.
|
|
34
|
+
- Regression/schema drift: Run `mcp-observatory diff <previous-run.json> <current-run.json>` to classify regressions and schema drift.
|
|
35
|
+
- Failing checks: none
|
|
36
|
+
- Partial or flaky checks: schema-quality
|
|
37
|
+
- Skipped checks: none
|
|
38
|
+
- Unsupported checks: prompts
|
|
39
|
+
- Suggested next step: Review the caveated checks next: schema-quality.
|
|
40
|
+
- CI next step: `Add CI: npx @kryptosai/mcp-observatory init-ci --all --command "npx -y <server-package>"`
|
|
41
|
+
|
|
42
|
+
## Regressions and Recoveries
|
|
43
|
+
|
|
44
|
+
_Use the `diff` command against another run artifact to classify regressions and recoveries over time._
|
|
45
|
+
|
|
46
|
+
## Full Capability Status Table
|
|
47
|
+
|
|
48
|
+
| Focus | Check | Status | Duration (ms) | Message |
|
|
49
|
+
| --- | --- | --- | --- | --- |
|
|
50
|
+
| healthy | conformance | pass | 2.58 | All 7 conformance checks passed. |
|
|
51
|
+
| healthy | resources | pass | 1.42 | Advertised capability responded with the minimal expected shape (1 items). |
|
|
52
|
+
| healthy | security | pass | 0.37 | No security issues detected. |
|
|
53
|
+
| healthy | security-lite | pass | 0.04 | No security issues detected (lightweight scan). |
|
|
54
|
+
| healthy | tools | pass | 2.48 | Advertised capability responded with the minimal expected shape (5 items). |
|
|
55
|
+
| review | schema-quality | partial | 0.80 | Found 1 quality finding(s) across 6 item(s): 1 warnings, 0 info. |
|
|
56
|
+
| confirm intent | prompts | unsupported | 0.00 | Prompts are not advertised by the target. |
|
|
57
|
+
|
|
58
|
+
## Evidence Snippets
|
|
59
|
+
|
|
60
|
+
### conformance — pass
|
|
61
|
+
|
|
62
|
+
Summary: All 7 conformance checks passed.
|
|
63
|
+
|
|
64
|
+
- Endpoint: `conformance/check`
|
|
65
|
+
- Advertised: `true`
|
|
66
|
+
- Responded: `true`
|
|
67
|
+
- Minimal shape present: `true`
|
|
68
|
+
- Item count: `7`
|
|
69
|
+
- Identifiers: none
|
|
70
|
+
- Diagnostics: [pass] capabilities-present: Server returned capabilities object., [pass] server-info: Server provided initialization info., [pass] tools-capability-match: tools/list returned 5 tool(s). (+4 more)
|
|
71
|
+
|
|
72
|
+
### resources — pass
|
|
73
|
+
|
|
74
|
+
Summary: Advertised capability responded with the minimal expected shape (1 items).
|
|
75
|
+
|
|
76
|
+
- Endpoint: `resources/list`
|
|
77
|
+
- Advertised: `true`
|
|
78
|
+
- Responded: `true`
|
|
79
|
+
- Minimal shape present: `true`
|
|
80
|
+
- Item count: `1`
|
|
81
|
+
- Identifiers: opentofu:registry-info
|
|
82
|
+
- Diagnostics: none
|
|
83
|
+
- Endpoint: `resources/templates/list`
|
|
84
|
+
- Advertised: `true`
|
|
85
|
+
- Responded: `true`
|
|
86
|
+
- Minimal shape present: `true`
|
|
87
|
+
- Item count: `0`
|
|
88
|
+
- Identifiers: none
|
|
89
|
+
- Diagnostics: none
|
|
90
|
+
|
|
91
|
+
### security — pass
|
|
92
|
+
|
|
93
|
+
Summary: No security issues detected.
|
|
94
|
+
|
|
95
|
+
- Endpoint: `security/scan`
|
|
96
|
+
- Advertised: `true`
|
|
97
|
+
- Responded: `true`
|
|
98
|
+
- Minimal shape present: `true`
|
|
99
|
+
- Item count: `0`
|
|
100
|
+
- Identifiers: none
|
|
101
|
+
- Diagnostics: none
|
|
102
|
+
|
|
103
|
+
### security-lite — pass
|
|
104
|
+
|
|
105
|
+
Summary: No security issues detected (lightweight scan).
|
|
106
|
+
|
|
107
|
+
- Endpoint: `security/scan-lite`
|
|
108
|
+
- Advertised: `true`
|
|
109
|
+
- Responded: `true`
|
|
110
|
+
- Minimal shape present: `true`
|
|
111
|
+
- Item count: `0`
|
|
112
|
+
- Identifiers: none
|
|
113
|
+
- Diagnostics: none
|
|
114
|
+
|
|
115
|
+
### tools — pass
|
|
116
|
+
|
|
117
|
+
Summary: Advertised capability responded with the minimal expected shape (5 items).
|
|
118
|
+
|
|
119
|
+
- Endpoint: `tools/list`
|
|
120
|
+
- Advertised: `true`
|
|
121
|
+
- Responded: `true`
|
|
122
|
+
- Minimal shape present: `true`
|
|
123
|
+
- Item count: `5`
|
|
124
|
+
- Identifiers: search-opentofu-registry, get-provider-details, get-module-details, get-resource-docs, get-datasource-docs
|
|
125
|
+
- Diagnostics: none
|
|
126
|
+
|
|
127
|
+
### schema-quality — partial
|
|
128
|
+
|
|
129
|
+
Summary: Found 1 quality finding(s) across 6 item(s): 1 warnings, 0 info.
|
|
130
|
+
|
|
131
|
+
- Endpoint: `schema-quality/scan`
|
|
132
|
+
- Advertised: `true`
|
|
133
|
+
- Responded: `true`
|
|
134
|
+
- Minimal shape present: `true`
|
|
135
|
+
- Item count: `1`
|
|
136
|
+
- Identifiers: opentofu-registry-info
|
|
137
|
+
- Diagnostics: [warning] resource "opentofu-registry-info": Missing description
|
|
138
|
+
|
|
139
|
+
### prompts — unsupported
|
|
140
|
+
|
|
141
|
+
Summary: Prompts are not advertised by the target.
|
|
142
|
+
|
|
143
|
+
- Endpoint: `prompts/list`
|
|
144
|
+
- Advertised: `false`
|
|
145
|
+
- Responded: `false`
|
|
146
|
+
- Minimal shape present: `false`
|
|
147
|
+
- Item count: `0`
|
|
148
|
+
- Identifiers: none
|
|
149
|
+
- Diagnostics: none
|
|
150
|
+
|
|
151
|
+
## Reproduction Commands
|
|
152
|
+
|
|
153
|
+
```bash
|
|
154
|
+
npm run cli -- run --target <path-to-target-config.json>
|
|
155
|
+
npm run cli -- report --run <path-to-run-artifact.json> --format markdown
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
## Artifact Provenance
|
|
159
|
+
|
|
160
|
+
- Artifact type: `run`
|
|
161
|
+
- Schema version: `1.0.0`
|
|
162
|
+
- Run ID: `run_2026-06-24T020729328Z_2a54782d`
|
|
163
|
+
- Gate: `pass`
|