@kryptosai/mcp-observatory 0.27.0 → 1.28.1
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/COMMERCIAL.md +28 -2
- package/CONTRIBUTORS.md +39 -0
- package/README.md +114 -22
- package/dist/src/action-receipt.d.ts +20 -0
- package/dist/src/action-receipt.js +85 -0
- package/dist/src/action-receipt.js.map +1 -0
- package/dist/src/adapters/http.js +1 -5
- package/dist/src/adapters/http.js.map +1 -1
- package/dist/src/audit.d.ts +64 -0
- package/dist/src/audit.js +359 -0
- package/dist/src/audit.js.map +1 -0
- package/dist/src/cassette.js +3 -2
- package/dist/src/cassette.js.map +1 -1
- package/dist/src/checks/attack-sim.d.ts +20 -0
- package/dist/src/checks/attack-sim.js +316 -0
- package/dist/src/checks/attack-sim.js.map +1 -0
- package/dist/src/ci-issue.js +4 -3
- package/dist/src/ci-issue.js.map +1 -1
- package/dist/src/cli.js +25 -4
- package/dist/src/cli.js.map +1 -1
- package/dist/src/commands/attack-sim.d.ts +2 -0
- package/dist/src/commands/attack-sim.js +220 -0
- package/dist/src/commands/attack-sim.js.map +1 -0
- package/dist/src/commands/audit.d.ts +2 -0
- package/dist/src/commands/audit.js +132 -0
- package/dist/src/commands/audit.js.map +1 -0
- package/dist/src/commands/init-ci.d.ts +3 -0
- package/dist/src/commands/init-ci.js +78 -13
- package/dist/src/commands/init-ci.js.map +1 -1
- package/dist/src/commands/legacy.js +8 -1
- package/dist/src/commands/legacy.js.map +1 -1
- package/dist/src/commands/receipt.d.ts +2 -0
- package/dist/src/commands/receipt.js +113 -0
- package/dist/src/commands/receipt.js.map +1 -0
- package/dist/src/commands/scan.js +30 -6
- package/dist/src/commands/scan.js.map +1 -1
- package/dist/src/commands/score.js +63 -0
- package/dist/src/commands/score.js.map +1 -1
- package/dist/src/commands/serve.js +9 -1
- package/dist/src/commands/serve.js.map +1 -1
- package/dist/src/commands/setup-ci-conversion.d.ts +3 -1
- package/dist/src/commands/setup-ci-conversion.js +23 -8
- package/dist/src/commands/setup-ci-conversion.js.map +1 -1
- package/dist/src/commands/telemetry.js +20 -14
- package/dist/src/commands/telemetry.js.map +1 -1
- package/dist/src/commands/test.js +31 -2
- package/dist/src/commands/test.js.map +1 -1
- package/dist/src/findings.d.ts +1 -0
- package/dist/src/findings.js +42 -1
- package/dist/src/findings.js.map +1 -1
- package/dist/src/history.js +3 -2
- package/dist/src/history.js.map +1 -1
- package/dist/src/index.d.ts +4 -0
- package/dist/src/index.js +4 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/integrations/smithery.js +5 -1
- package/dist/src/integrations/smithery.js.map +1 -1
- package/dist/src/receipt.d.ts +100 -0
- package/dist/src/receipt.js +375 -0
- package/dist/src/receipt.js.map +1 -0
- package/dist/src/reporters/attack-sim.d.ts +2 -0
- package/dist/src/reporters/attack-sim.js +89 -0
- package/dist/src/reporters/attack-sim.js.map +1 -0
- package/dist/src/reporters/pr-comment.js +20 -6
- package/dist/src/reporters/pr-comment.js.map +1 -1
- package/dist/src/reporters/sarif.js +11 -1
- package/dist/src/reporters/sarif.js.map +1 -1
- package/dist/src/runner.d.ts +3 -0
- package/dist/src/runner.js +5 -0
- package/dist/src/runner.js.map +1 -1
- package/dist/src/score.js +1 -1
- package/dist/src/score.js.map +1 -1
- package/dist/src/security-profiles.d.ts +13 -0
- package/dist/src/security-profiles.js +59 -0
- package/dist/src/security-profiles.js.map +1 -0
- package/dist/src/storage.js +3 -2
- package/dist/src/storage.js.map +1 -1
- package/dist/src/telemetry.d.ts +10 -0
- package/dist/src/telemetry.js +17 -1
- package/dist/src/telemetry.js.map +1 -1
- package/dist/src/types.d.ts +1 -1
- package/dist/src/utils/files.d.ts +1 -0
- package/dist/src/utils/files.js +21 -0
- package/dist/src/utils/files.js.map +1 -0
- package/dist/src/utils/ids.js +18 -5
- package/dist/src/utils/ids.js.map +1 -1
- package/dist/src/utils/url.d.ts +2 -0
- package/dist/src/utils/url.js +15 -0
- package/dist/src/utils/url.js.map +1 -0
- package/dist/src/validate.js +1 -1
- package/dist/src/validate.js.map +1 -1
- package/docs/10x-agentic-growth-sprint.md +47 -0
- package/docs/agent-ecosystem-promotion-plan.md +244 -0
- package/docs/agent-tasks.md +95 -0
- package/docs/agentic-contributor-outreach.md +52 -0
- package/docs/automatic-ci-integration.md +33 -0
- package/docs/campaign-attribution.md +58 -0
- package/docs/code-scanning-demo.md +57 -0
- package/docs/commercial-boundary.md +83 -0
- package/docs/contributor-proof-cards/README.md +33 -0
- package/docs/contributor-recognition.md +92 -0
- package/docs/examples/nsa-mcp-audit-report.md +372 -0
- package/docs/examples/nsa-mcp-results.sarif +930 -0
- package/docs/examples/nsa-mcp-score.json +13 -0
- package/docs/feishu-lark-mcp.md +1 -1
- package/docs/github-code-scanning-for-mcp.md +1 -1
- package/docs/government-enterprise-pilot.md +93 -0
- package/docs/launch.md +64 -0
- package/docs/mcp-attack-simulator.md +57 -0
- package/docs/mcp-receipts.md +109 -0
- package/docs/mcp-server-safety-index.md +29 -22
- package/docs/nsa-mcp-audit-ci.md +88 -0
- package/docs/procurement-one-pager.md +74 -0
- package/docs/proof.md +5 -2
- package/docs/public-guidance-crosswalk.md +48 -0
- package/docs/receipt-graph.md +54 -0
- package/docs/safety-index/artifacts/antv-chart-server.json +40 -22
- package/docs/safety-index/artifacts/antv-chart-server.md +22 -9
- package/docs/safety-index/artifacts/browsermcp-server.json +36 -18
- package/docs/safety-index/artifacts/browsermcp-server.md +22 -9
- package/docs/safety-index/artifacts/context7-server.json +83 -26
- package/docs/safety-index/artifacts/context7-server.md +33 -20
- package/docs/safety-index/artifacts/cyanheads-git-mcp-server.json +2438 -0
- package/docs/safety-index/artifacts/cyanheads-git-mcp-server.md +176 -0
- package/docs/safety-index/artifacts/everything-server.json +150 -57
- package/docs/safety-index/artifacts/everything-server.md +36 -23
- package/docs/safety-index/artifacts/executeautomation-playwright-server.json +162 -19
- package/docs/safety-index/artifacts/executeautomation-playwright-server.md +25 -12
- package/docs/safety-index/artifacts/filesystem-server.json +221 -19
- package/docs/safety-index/artifacts/filesystem-server.md +24 -11
- package/docs/safety-index/artifacts/kubernetes-server.attack.json +1559 -0
- package/docs/safety-index/artifacts/kubernetes-server.attack.md +43 -0
- package/docs/safety-index/artifacts/kubernetes-server.attack.sarif +2857 -0
- package/docs/safety-index/artifacts/kubernetes-server.json +1573 -0
- package/docs/safety-index/artifacts/kubernetes-server.md +176 -0
- package/docs/safety-index/artifacts/memory-server.json +93 -32
- package/docs/safety-index/artifacts/memory-server.md +45 -25
- package/docs/safety-index/artifacts/opentofu-server.json +44 -18
- package/docs/safety-index/artifacts/opentofu-server.md +23 -10
- package/docs/safety-index/artifacts/playwright-mcp-server.json +177 -21
- package/docs/safety-index/artifacts/playwright-mcp-server.md +27 -14
- package/docs/safety-index/artifacts/promptopia-server.json +45 -19
- package/docs/safety-index/artifacts/promptopia-server.md +21 -8
- package/docs/safety-index/artifacts/puppeteer-server.json +77 -22
- package/docs/safety-index/artifacts/puppeteer-server.md +28 -15
- package/docs/safety-index/artifacts/ref-tools-server.json +36 -18
- package/docs/safety-index/artifacts/ref-tools-server.md +21 -8
- package/docs/safety-index/artifacts/sequential-thinking-server.json +38 -21
- package/docs/safety-index/artifacts/sequential-thinking-server.md +22 -9
- package/docs/safety-index/targets.json +90 -14
- package/docs/security-due-diligence.md +87 -0
- package/docs/setup-ci-doctor.md +13 -1
- package/docs/target-gallery.md +49 -0
- package/docs/target-registry.md +5 -1
- package/docs/tool-call-receipts.md +115 -0
- package/examples/insecure-mcp-server/mcp-observatory.target.json +13 -0
- package/examples/insecure-mcp-server/server.mjs +62 -0
- package/package.json +31 -2
- package/schemas/run-artifact.schema.json +1 -0
- package/scripts/postinstall.mjs +138 -0
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
# MCP Observatory Run Report
|
|
2
|
+
|
|
3
|
+
Generated at 2026-07-06T19:49:58.878Z
|
|
4
|
+
|
|
5
|
+
## Target and Environment Metadata
|
|
6
|
+
|
|
7
|
+
- Target: `kubernetes-server`
|
|
8
|
+
- Adapter: `local-process`
|
|
9
|
+
- Command: `npx -y mcp-server-kubernetes`
|
|
10
|
+
- Server: `kubernetes 3.9.3`
|
|
11
|
+
- Platform: `darwin 25.5.0`
|
|
12
|
+
- Node: `v22.22.1`
|
|
13
|
+
|
|
14
|
+
## Executive Summary
|
|
15
|
+
|
|
16
|
+
**Health Score: 72/100 (C)**
|
|
17
|
+
|
|
18
|
+
| Dimension | Score | Weight |
|
|
19
|
+
| --- | --- | --- |
|
|
20
|
+
| Protocol Compliance | 100/100 | 30% |
|
|
21
|
+
| Schema Quality | 60/100 | 20% |
|
|
22
|
+
| Security | 0/100 | 20% |
|
|
23
|
+
| Reliability | 100/100 | 20% |
|
|
24
|
+
| Performance | 100/100 | 10% |
|
|
25
|
+
|
|
26
|
+
| Gate | Total | Pass | Fail | Partial | Unsupported | Flaky | Skipped |
|
|
27
|
+
| --- | --- | --- | --- | --- | --- | --- | --- |
|
|
28
|
+
| fail | 8 | 4 | 3 | 1 | 0 | 0 | 0 |
|
|
29
|
+
|
|
30
|
+
## At a Glance
|
|
31
|
+
|
|
32
|
+
- Safety verdict: **Blocked** — One or more checks can break agent dependence and should be fixed before production use.
|
|
33
|
+
- Top risks: schema-quality: Found 7 quality finding(s) across 29 item(s): 0 warnings, 7 info.; attack-sim: Safe attack simulation found 5 finding(s): 3 high, 2 medium, 0 low.; security: Found 8 security finding(s): 3 high, 3 medium, 2 low.
|
|
34
|
+
- Regression/schema drift: Run `mcp-observatory diff <previous-run.json> <current-run.json>` to classify regressions and schema drift.
|
|
35
|
+
- Failing checks: security-lite, security, attack-sim
|
|
36
|
+
- Partial or flaky checks: schema-quality
|
|
37
|
+
- Skipped checks: none
|
|
38
|
+
- Unsupported checks: none
|
|
39
|
+
- Suggested next step: Start with the failing checks: security-lite, security, attack-sim.
|
|
40
|
+
- CI next step: `Add CI: npx @kryptosai/mcp-observatory setup-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 | 1.69 | All 7 conformance checks passed. |
|
|
51
|
+
| healthy | prompts | pass | 0.30 | Advertised capability responded with the minimal expected shape (1 item). |
|
|
52
|
+
| healthy | resources | pass | 0.38 | Advertised capability responded with the minimal expected shape, but one optional resource endpoint appears unsupported. |
|
|
53
|
+
| healthy | tools | pass | 1.26 | Advertised capability responded with the minimal expected shape (23 items). |
|
|
54
|
+
| review | schema-quality | partial | 0.49 | Found 7 quality finding(s) across 29 item(s): 0 warnings, 7 info. |
|
|
55
|
+
| act now | attack-sim | fail | 0.75 | Safe attack simulation found 5 finding(s): 3 high, 2 medium, 0 low. |
|
|
56
|
+
| act now | security | fail | 0.28 | Found 8 security finding(s): 3 high, 3 medium, 2 low. |
|
|
57
|
+
| act now | security-lite | fail | 0.06 | Found 8 security finding(s): 3 high, 3 medium, 2 low. |
|
|
58
|
+
|
|
59
|
+
## Evidence Snippets
|
|
60
|
+
|
|
61
|
+
### conformance — pass
|
|
62
|
+
|
|
63
|
+
Summary: All 7 conformance checks passed.
|
|
64
|
+
|
|
65
|
+
- Endpoint: `conformance/check`
|
|
66
|
+
- Advertised: `true`
|
|
67
|
+
- Responded: `true`
|
|
68
|
+
- Minimal shape present: `true`
|
|
69
|
+
- Item count: `7`
|
|
70
|
+
- Identifiers: none
|
|
71
|
+
- Diagnostics: [pass] capabilities-present: Server returned capabilities object., [pass] server-info: Server provided initialization info., [pass] tools-capability-match: tools/list returned 23 tool(s). (+4 more)
|
|
72
|
+
|
|
73
|
+
### prompts — pass
|
|
74
|
+
|
|
75
|
+
Summary: Advertised capability responded with the minimal expected shape (1 item).
|
|
76
|
+
|
|
77
|
+
- Endpoint: `prompts/list`
|
|
78
|
+
- Advertised: `true`
|
|
79
|
+
- Responded: `true`
|
|
80
|
+
- Minimal shape present: `true`
|
|
81
|
+
- Item count: `1`
|
|
82
|
+
- Identifiers: k8s-diagnose
|
|
83
|
+
- Diagnostics: Starting Kubernetes MCP server v3.9.3, handling commands..., Telemetry: Disabled, (node:13988) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead. (+1 more)
|
|
84
|
+
|
|
85
|
+
### resources — pass
|
|
86
|
+
|
|
87
|
+
Summary: Advertised capability responded with the minimal expected shape, but one optional resource endpoint appears unsupported.
|
|
88
|
+
|
|
89
|
+
- Endpoint: `resources/list`
|
|
90
|
+
- Advertised: `true`
|
|
91
|
+
- Responded: `true`
|
|
92
|
+
- Minimal shape present: `true`
|
|
93
|
+
- Item count: `5`
|
|
94
|
+
- Identifiers: k8s://default/pods, k8s://default/deployments, k8s://default/services, k8s://namespaces, k8s://nodes
|
|
95
|
+
- Diagnostics: Starting Kubernetes MCP server v3.9.3, handling commands..., Telemetry: Disabled, (node:13988) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead. (+1 more)
|
|
96
|
+
- Endpoint: `resources/templates/list`
|
|
97
|
+
- Advertised: `true`
|
|
98
|
+
- Responded: `false`
|
|
99
|
+
- Minimal shape present: `false`
|
|
100
|
+
- Item count: `0`
|
|
101
|
+
- Identifiers: none
|
|
102
|
+
- Diagnostics: MCP error -32601: Method not found, Starting Kubernetes MCP server v3.9.3, handling commands..., Telemetry: Disabled (+2 more)
|
|
103
|
+
|
|
104
|
+
### tools — pass
|
|
105
|
+
|
|
106
|
+
Summary: Advertised capability responded with the minimal expected shape (23 items).
|
|
107
|
+
|
|
108
|
+
- Endpoint: `tools/list`
|
|
109
|
+
- Advertised: `true`
|
|
110
|
+
- Responded: `true`
|
|
111
|
+
- Minimal shape present: `true`
|
|
112
|
+
- Item count: `23`
|
|
113
|
+
- Identifiers: cleanup, kubectl_get, kubectl_describe, kubectl_apply, kubectl_delete (+18 more)
|
|
114
|
+
- Diagnostics: Starting Kubernetes MCP server v3.9.3, handling commands..., Telemetry: Disabled, (node:13988) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead. (+1 more)
|
|
115
|
+
|
|
116
|
+
### schema-quality — partial
|
|
117
|
+
|
|
118
|
+
Summary: Found 7 quality finding(s) across 29 item(s): 0 warnings, 7 info.
|
|
119
|
+
|
|
120
|
+
- Endpoint: `schema-quality/scan`
|
|
121
|
+
- Advertised: `true`
|
|
122
|
+
- Responded: `true`
|
|
123
|
+
- Minimal shape present: `true`
|
|
124
|
+
- Item count: `7`
|
|
125
|
+
- Identifiers: port_forward, stop_port_forward, list_api_resources
|
|
126
|
+
- Diagnostics: [info] tool "port_forward": Property 'resourceType' missing description, [info] tool "port_forward": Property 'resourceName' missing description, [info] tool "port_forward": Property 'localPort' missing description (+4 more)
|
|
127
|
+
|
|
128
|
+
### attack-sim — fail
|
|
129
|
+
|
|
130
|
+
Summary: Safe attack simulation found 5 finding(s): 3 high, 2 medium, 0 low.
|
|
131
|
+
|
|
132
|
+
- Endpoint: `attack-sim/safe`
|
|
133
|
+
- Advertised: `true`
|
|
134
|
+
- Responded: `true`
|
|
135
|
+
- Minimal shape present: `true`
|
|
136
|
+
- Item count: `5`
|
|
137
|
+
- Identifiers: kubectl_apply, kubectl_delete, kubectl_create, exec_in_pod, kubectl_generic
|
|
138
|
+
- Diagnostics: [medium] Tool "kubectl_apply" combines broad parameters (filename) with destructive or non-read-only behavior., [medium] Tool "kubectl_delete" combines broad parameters (filename) with destructive or non-read-only behavior., [high] Tool "kubectl_create" combines broad parameters (filename, command) with destructive or non-read-only behavior. (+2 more)
|
|
139
|
+
|
|
140
|
+
### security — fail
|
|
141
|
+
|
|
142
|
+
Summary: Found 8 security finding(s): 3 high, 3 medium, 2 low.
|
|
143
|
+
|
|
144
|
+
- Endpoint: `security/scan`
|
|
145
|
+
- Advertised: `true`
|
|
146
|
+
- Responded: `true`
|
|
147
|
+
- Minimal shape present: `true`
|
|
148
|
+
- Item count: `8`
|
|
149
|
+
- Identifiers: cleanup, kubectl_apply, kubectl_delete, kubectl_create, kubectl_reconnect (+2 more)
|
|
150
|
+
- Diagnostics: [low] Tool "cleanup" has an empty schema but is marked as destructive., [medium] Tool "kubectl_apply" accepts filesystem paths and has destructive capabilities., [medium] Tool "kubectl_delete" accepts filesystem paths and has destructive capabilities. (+5 more)
|
|
151
|
+
|
|
152
|
+
### security-lite — fail
|
|
153
|
+
|
|
154
|
+
Summary: Found 8 security finding(s): 3 high, 3 medium, 2 low.
|
|
155
|
+
|
|
156
|
+
- Endpoint: `security/scan-lite`
|
|
157
|
+
- Advertised: `true`
|
|
158
|
+
- Responded: `true`
|
|
159
|
+
- Minimal shape present: `true`
|
|
160
|
+
- Item count: `8`
|
|
161
|
+
- Identifiers: cleanup, kubectl_apply, kubectl_delete, kubectl_create, kubectl_reconnect (+2 more)
|
|
162
|
+
- Diagnostics: [low] Tool "cleanup" has an empty schema but is marked as destructive., [medium] Tool "kubectl_apply" accepts filesystem paths and has destructive capabilities., [medium] Tool "kubectl_delete" accepts filesystem paths and has destructive capabilities. (+5 more)
|
|
163
|
+
|
|
164
|
+
## Reproduction Commands
|
|
165
|
+
|
|
166
|
+
```bash
|
|
167
|
+
npm run cli -- run --target <path-to-target-config.json>
|
|
168
|
+
npm run cli -- report --run <path-to-run-artifact.json> --format markdown
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
## Artifact Provenance
|
|
172
|
+
|
|
173
|
+
- Artifact type: `run`
|
|
174
|
+
- Schema version: `1.0.0`
|
|
175
|
+
- Run ID: `run_2026-07-06T194958878Z_b41bb221`
|
|
176
|
+
- Gate: `fail`
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
"artifactType": "run",
|
|
3
3
|
"schemaVersion": "1.0.0",
|
|
4
4
|
"gate": "pass",
|
|
5
|
-
"runId": "run_2026-
|
|
6
|
-
"createdAt": "2026-
|
|
7
|
-
"toolVersion": "0.
|
|
5
|
+
"runId": "run_2026-07-06T194946771Z_35b0da26",
|
|
6
|
+
"createdAt": "2026-07-06T19:49:46.771Z",
|
|
7
|
+
"toolVersion": "0.28.0",
|
|
8
8
|
"target": {
|
|
9
9
|
"targetId": "memory-server",
|
|
10
10
|
"adapter": "local-process",
|
|
@@ -29,11 +29,11 @@
|
|
|
29
29
|
"nodeVersion": "v22.22.1"
|
|
30
30
|
},
|
|
31
31
|
"summary": {
|
|
32
|
-
"total":
|
|
33
|
-
"pass":
|
|
32
|
+
"total": 8,
|
|
33
|
+
"pass": 6,
|
|
34
34
|
"fail": 0,
|
|
35
35
|
"partial": 1,
|
|
36
|
-
"unsupported":
|
|
36
|
+
"unsupported": 1,
|
|
37
37
|
"flaky": 0,
|
|
38
38
|
"skipped": 0,
|
|
39
39
|
"gate": "pass"
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
"id": "tools",
|
|
44
44
|
"capability": "tools",
|
|
45
45
|
"status": "pass",
|
|
46
|
-
"durationMs": 7.
|
|
46
|
+
"durationMs": 7.618457999999919,
|
|
47
47
|
"message": "Advertised capability responded with the minimal expected shape (9 items).",
|
|
48
48
|
"evidence": [
|
|
49
49
|
{
|
|
@@ -295,7 +295,7 @@
|
|
|
295
295
|
"id": "prompts",
|
|
296
296
|
"capability": "prompts",
|
|
297
297
|
"status": "unsupported",
|
|
298
|
-
"durationMs": 0.
|
|
298
|
+
"durationMs": 0.0020410000001902517,
|
|
299
299
|
"message": "Prompts are not advertised by the target.",
|
|
300
300
|
"evidence": [
|
|
301
301
|
{
|
|
@@ -310,16 +310,33 @@
|
|
|
310
310
|
{
|
|
311
311
|
"id": "resources",
|
|
312
312
|
"capability": "resources",
|
|
313
|
-
"status": "
|
|
314
|
-
"durationMs":
|
|
315
|
-
"message": "
|
|
313
|
+
"status": "pass",
|
|
314
|
+
"durationMs": 1.1717079999998532,
|
|
315
|
+
"message": "Advertised capability responded with the minimal expected shape (1 items).",
|
|
316
316
|
"evidence": [
|
|
317
317
|
{
|
|
318
|
-
"endpoint": "resources/list
|
|
319
|
-
"advertised":
|
|
320
|
-
"responded":
|
|
321
|
-
"minimalShapePresent":
|
|
322
|
-
"
|
|
318
|
+
"endpoint": "resources/list",
|
|
319
|
+
"advertised": true,
|
|
320
|
+
"responded": true,
|
|
321
|
+
"minimalShapePresent": true,
|
|
322
|
+
"itemCount": 1,
|
|
323
|
+
"identifiers": [
|
|
324
|
+
"memory://knowledge-graph"
|
|
325
|
+
],
|
|
326
|
+
"diagnostics": [
|
|
327
|
+
"Knowledge Graph MCP Server running on stdio"
|
|
328
|
+
]
|
|
329
|
+
},
|
|
330
|
+
{
|
|
331
|
+
"endpoint": "resources/templates/list",
|
|
332
|
+
"advertised": true,
|
|
333
|
+
"responded": true,
|
|
334
|
+
"minimalShapePresent": true,
|
|
335
|
+
"itemCount": 0,
|
|
336
|
+
"identifiers": [],
|
|
337
|
+
"diagnostics": [
|
|
338
|
+
"Knowledge Graph MCP Server running on stdio"
|
|
339
|
+
]
|
|
323
340
|
}
|
|
324
341
|
]
|
|
325
342
|
},
|
|
@@ -327,7 +344,7 @@
|
|
|
327
344
|
"id": "security-lite",
|
|
328
345
|
"capability": "security-lite",
|
|
329
346
|
"status": "pass",
|
|
330
|
-
"durationMs": 0.
|
|
347
|
+
"durationMs": 0.04383400000006077,
|
|
331
348
|
"message": "No security issues detected (lightweight scan).",
|
|
332
349
|
"evidence": [
|
|
333
350
|
{
|
|
@@ -343,7 +360,7 @@
|
|
|
343
360
|
"id": "conformance",
|
|
344
361
|
"capability": "conformance",
|
|
345
362
|
"status": "pass",
|
|
346
|
-
"durationMs": 9.
|
|
363
|
+
"durationMs": 9.354083000000173,
|
|
347
364
|
"message": "All 7 conformance checks passed.",
|
|
348
365
|
"evidence": [
|
|
349
366
|
{
|
|
@@ -358,7 +375,7 @@
|
|
|
358
375
|
"[pass] server-info: Server provided initialization info.",
|
|
359
376
|
"[pass] tools-capability-match: tools/list returned 9 tool(s).",
|
|
360
377
|
"[pass] prompts-capability-match: Prompts not advertised — endpoint check skipped.",
|
|
361
|
-
"[pass] resources-capability-match:
|
|
378
|
+
"[pass] resources-capability-match: resources/list returned 1 resource(s).",
|
|
362
379
|
"[pass] tool-response-content: Tool \"read_graph\" response has valid content array.",
|
|
363
380
|
"[pass] error-handling: Server returned proper error code -32601 for unknown method."
|
|
364
381
|
]
|
|
@@ -369,8 +386,8 @@
|
|
|
369
386
|
"id": "schema-quality",
|
|
370
387
|
"capability": "schema-quality",
|
|
371
388
|
"status": "partial",
|
|
372
|
-
"durationMs": 4.
|
|
373
|
-
"message": "Found 4 quality finding(s) across
|
|
389
|
+
"durationMs": 4.083458000000064,
|
|
390
|
+
"message": "Found 4 quality finding(s) across 10 item(s): 0 warnings, 4 info.",
|
|
374
391
|
"evidence": [
|
|
375
392
|
{
|
|
376
393
|
"endpoint": "schema-quality/scan",
|
|
@@ -389,6 +406,32 @@
|
|
|
389
406
|
"[info] tool \"create_relations\": Property 'relations' missing description",
|
|
390
407
|
"[info] tool \"add_observations\": Property 'observations' missing description",
|
|
391
408
|
"[info] tool \"delete_observations\": Property 'deletions' missing description"
|
|
409
|
+
],
|
|
410
|
+
"findings": [
|
|
411
|
+
{
|
|
412
|
+
"itemType": "tool",
|
|
413
|
+
"itemName": "create_entities",
|
|
414
|
+
"issue": "Property 'entities' missing description",
|
|
415
|
+
"severity": "info"
|
|
416
|
+
},
|
|
417
|
+
{
|
|
418
|
+
"itemType": "tool",
|
|
419
|
+
"itemName": "create_relations",
|
|
420
|
+
"issue": "Property 'relations' missing description",
|
|
421
|
+
"severity": "info"
|
|
422
|
+
},
|
|
423
|
+
{
|
|
424
|
+
"itemType": "tool",
|
|
425
|
+
"itemName": "add_observations",
|
|
426
|
+
"issue": "Property 'observations' missing description",
|
|
427
|
+
"severity": "info"
|
|
428
|
+
},
|
|
429
|
+
{
|
|
430
|
+
"itemType": "tool",
|
|
431
|
+
"itemName": "delete_observations",
|
|
432
|
+
"issue": "Property 'deletions' missing description",
|
|
433
|
+
"severity": "info"
|
|
434
|
+
}
|
|
392
435
|
]
|
|
393
436
|
}
|
|
394
437
|
]
|
|
@@ -397,7 +440,7 @@
|
|
|
397
440
|
"id": "security",
|
|
398
441
|
"capability": "security",
|
|
399
442
|
"status": "pass",
|
|
400
|
-
"durationMs":
|
|
443
|
+
"durationMs": 3.6132500000003347,
|
|
401
444
|
"message": "No security issues detected.",
|
|
402
445
|
"evidence": [
|
|
403
446
|
{
|
|
@@ -408,10 +451,27 @@
|
|
|
408
451
|
"itemCount": 0
|
|
409
452
|
}
|
|
410
453
|
]
|
|
454
|
+
},
|
|
455
|
+
{
|
|
456
|
+
"id": "attack-sim",
|
|
457
|
+
"capability": "attack-sim",
|
|
458
|
+
"status": "pass",
|
|
459
|
+
"durationMs": 3.8723329999997986,
|
|
460
|
+
"message": "Safe attack simulation found no high-risk MCP attack-readiness findings.",
|
|
461
|
+
"evidence": [
|
|
462
|
+
{
|
|
463
|
+
"endpoint": "attack-sim/safe",
|
|
464
|
+
"advertised": true,
|
|
465
|
+
"responded": true,
|
|
466
|
+
"minimalShapePresent": true,
|
|
467
|
+
"itemCount": 0,
|
|
468
|
+
"identifiers": []
|
|
469
|
+
}
|
|
470
|
+
]
|
|
411
471
|
}
|
|
412
472
|
],
|
|
413
473
|
"healthScore": {
|
|
414
|
-
"overall":
|
|
474
|
+
"overall": 89,
|
|
415
475
|
"grade": "B",
|
|
416
476
|
"dimensions": [
|
|
417
477
|
{
|
|
@@ -436,17 +496,18 @@
|
|
|
436
496
|
"score": 100,
|
|
437
497
|
"details": [
|
|
438
498
|
"security-lite: pass (100/100)",
|
|
439
|
-
"security: pass (100/100)"
|
|
499
|
+
"security: pass (100/100)",
|
|
500
|
+
"attack-sim: pass (100/100)"
|
|
440
501
|
]
|
|
441
502
|
},
|
|
442
503
|
{
|
|
443
504
|
"name": "Reliability",
|
|
444
505
|
"weight": 0.2,
|
|
445
|
-
"score":
|
|
506
|
+
"score": 83,
|
|
446
507
|
"details": [
|
|
447
508
|
"tools: pass (100/100)",
|
|
448
509
|
"prompts: unsupported (50/100)",
|
|
449
|
-
"resources:
|
|
510
|
+
"resources: pass (100/100)"
|
|
450
511
|
]
|
|
451
512
|
},
|
|
452
513
|
{
|
|
@@ -454,16 +515,16 @@
|
|
|
454
515
|
"weight": 0.1,
|
|
455
516
|
"score": 100,
|
|
456
517
|
"details": [
|
|
457
|
-
"Connect:
|
|
458
|
-
"p95 latency:
|
|
518
|
+
"Connect: 628ms",
|
|
519
|
+
"p95 latency: 8ms (3 operations)"
|
|
459
520
|
]
|
|
460
521
|
}
|
|
461
522
|
]
|
|
462
523
|
},
|
|
463
524
|
"performanceMetrics": {
|
|
464
|
-
"connectMs":
|
|
465
|
-
"toolsListMs": 7.
|
|
466
|
-
"promptsListMs": 0.
|
|
467
|
-
"resourcesListMs":
|
|
525
|
+
"connectMs": 628.0643749999999,
|
|
526
|
+
"toolsListMs": 7.618457999999919,
|
|
527
|
+
"promptsListMs": 0.0020410000001902517,
|
|
528
|
+
"resourcesListMs": 1.1717079999998532
|
|
468
529
|
}
|
|
469
530
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# MCP Observatory Run Report
|
|
2
2
|
|
|
3
|
-
Generated at 2026-
|
|
3
|
+
Generated at 2026-07-06T19:49:46.771Z
|
|
4
4
|
|
|
5
5
|
## Target and Environment Metadata
|
|
6
6
|
|
|
@@ -13,29 +13,29 @@ Generated at 2026-06-24T02:07:23.256Z
|
|
|
13
13
|
|
|
14
14
|
## Executive Summary
|
|
15
15
|
|
|
16
|
-
**Health Score:
|
|
16
|
+
**Health Score: 89/100 (B)**
|
|
17
17
|
|
|
18
18
|
| Dimension | Score | Weight |
|
|
19
19
|
| --- | --- | --- |
|
|
20
20
|
| Protocol Compliance | 100/100 | 30% |
|
|
21
21
|
| Schema Quality | 60/100 | 20% |
|
|
22
22
|
| Security | 100/100 | 20% |
|
|
23
|
-
| Reliability |
|
|
23
|
+
| Reliability | 83/100 | 20% |
|
|
24
24
|
| Performance | 100/100 | 10% |
|
|
25
25
|
|
|
26
26
|
| Gate | Total | Pass | Fail | Partial | Unsupported | Flaky | Skipped |
|
|
27
27
|
| --- | --- | --- | --- | --- | --- | --- | --- |
|
|
28
|
-
| pass |
|
|
28
|
+
| pass | 8 | 6 | 0 | 1 | 1 | 0 | 0 |
|
|
29
29
|
|
|
30
30
|
## At a Glance
|
|
31
31
|
|
|
32
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
|
|
33
|
+
- Top risks: schema-quality: Found 4 quality finding(s) across 10 item(s): 0 warnings, 4 info.
|
|
34
34
|
- Regression/schema drift: Run `mcp-observatory diff <previous-run.json> <current-run.json>` to classify regressions and schema drift.
|
|
35
35
|
- Failing checks: none
|
|
36
36
|
- Partial or flaky checks: schema-quality
|
|
37
37
|
- Skipped checks: none
|
|
38
|
-
- Unsupported checks: prompts
|
|
38
|
+
- Unsupported checks: prompts
|
|
39
39
|
- Suggested next step: Review the caveated checks next: schema-quality.
|
|
40
40
|
- CI next step: `Add CI: npx @kryptosai/mcp-observatory setup-ci --all --command "npx -y <server-package>"`
|
|
41
41
|
|
|
@@ -47,16 +47,29 @@ _Use the `diff` command against another run artifact to classify regressions and
|
|
|
47
47
|
|
|
48
48
|
| Focus | Check | Status | Duration (ms) | Message |
|
|
49
49
|
| --- | --- | --- | --- | --- |
|
|
50
|
-
| healthy |
|
|
51
|
-
| healthy |
|
|
50
|
+
| healthy | attack-sim | pass | 3.87 | Safe attack simulation found no high-risk MCP attack-readiness findings. |
|
|
51
|
+
| healthy | conformance | pass | 9.35 | All 7 conformance checks passed. |
|
|
52
|
+
| healthy | resources | pass | 1.17 | Advertised capability responded with the minimal expected shape (1 items). |
|
|
53
|
+
| healthy | security | pass | 3.61 | No security issues detected. |
|
|
52
54
|
| healthy | security-lite | pass | 0.04 | No security issues detected (lightweight scan). |
|
|
53
|
-
| healthy | tools | pass | 7.
|
|
54
|
-
| review | schema-quality | partial | 4.
|
|
55
|
+
| healthy | tools | pass | 7.62 | Advertised capability responded with the minimal expected shape (9 items). |
|
|
56
|
+
| review | schema-quality | partial | 4.08 | Found 4 quality finding(s) across 10 item(s): 0 warnings, 4 info. |
|
|
55
57
|
| 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
|
|
|
58
59
|
## Evidence Snippets
|
|
59
60
|
|
|
61
|
+
### attack-sim — pass
|
|
62
|
+
|
|
63
|
+
Summary: Safe attack simulation found no high-risk MCP attack-readiness findings.
|
|
64
|
+
|
|
65
|
+
- Endpoint: `attack-sim/safe`
|
|
66
|
+
- Advertised: `true`
|
|
67
|
+
- Responded: `true`
|
|
68
|
+
- Minimal shape present: `true`
|
|
69
|
+
- Item count: `0`
|
|
70
|
+
- Identifiers: none
|
|
71
|
+
- Diagnostics: none
|
|
72
|
+
|
|
60
73
|
### conformance — pass
|
|
61
74
|
|
|
62
75
|
Summary: All 7 conformance checks passed.
|
|
@@ -69,6 +82,25 @@ Summary: All 7 conformance checks passed.
|
|
|
69
82
|
- Identifiers: none
|
|
70
83
|
- 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
84
|
|
|
85
|
+
### resources — pass
|
|
86
|
+
|
|
87
|
+
Summary: Advertised capability responded with the minimal expected shape (1 items).
|
|
88
|
+
|
|
89
|
+
- Endpoint: `resources/list`
|
|
90
|
+
- Advertised: `true`
|
|
91
|
+
- Responded: `true`
|
|
92
|
+
- Minimal shape present: `true`
|
|
93
|
+
- Item count: `1`
|
|
94
|
+
- Identifiers: memory://knowledge-graph
|
|
95
|
+
- Diagnostics: Knowledge Graph MCP Server running on stdio
|
|
96
|
+
- Endpoint: `resources/templates/list`
|
|
97
|
+
- Advertised: `true`
|
|
98
|
+
- Responded: `true`
|
|
99
|
+
- Minimal shape present: `true`
|
|
100
|
+
- Item count: `0`
|
|
101
|
+
- Identifiers: none
|
|
102
|
+
- Diagnostics: Knowledge Graph MCP Server running on stdio
|
|
103
|
+
|
|
72
104
|
### security — pass
|
|
73
105
|
|
|
74
106
|
Summary: No security issues detected.
|
|
@@ -107,7 +139,7 @@ Summary: Advertised capability responded with the minimal expected shape (9 item
|
|
|
107
139
|
|
|
108
140
|
### schema-quality — partial
|
|
109
141
|
|
|
110
|
-
Summary: Found 4 quality finding(s) across
|
|
142
|
+
Summary: Found 4 quality finding(s) across 10 item(s): 0 warnings, 4 info.
|
|
111
143
|
|
|
112
144
|
- Endpoint: `schema-quality/scan`
|
|
113
145
|
- Advertised: `true`
|
|
@@ -129,18 +161,6 @@ Summary: Prompts are not advertised by the target.
|
|
|
129
161
|
- Identifiers: none
|
|
130
162
|
- Diagnostics: none
|
|
131
163
|
|
|
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
164
|
## Reproduction Commands
|
|
145
165
|
|
|
146
166
|
```bash
|
|
@@ -152,5 +172,5 @@ npm run cli -- report --run <path-to-run-artifact.json> --format markdown
|
|
|
152
172
|
|
|
153
173
|
- Artifact type: `run`
|
|
154
174
|
- Schema version: `1.0.0`
|
|
155
|
-
- Run ID: `run_2026-
|
|
175
|
+
- Run ID: `run_2026-07-06T194946771Z_35b0da26`
|
|
156
176
|
- Gate: `pass`
|