@kryptosai/mcp-observatory 0.27.0 → 0.28.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/COMMERCIAL.md +6 -1
- package/CONTRIBUTORS.md +39 -0
- package/README.md +57 -18
- package/dist/src/adapters/http.js +1 -5
- package/dist/src/adapters/http.js.map +1 -1
- package/dist/src/cassette.js +3 -2
- package/dist/src/cassette.js.map +1 -1
- package/dist/src/checks/attack-sim.d.ts +18 -0
- package/dist/src/checks/attack-sim.js +304 -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 +17 -3
- 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 +168 -0
- package/dist/src/commands/attack-sim.js.map +1 -0
- package/dist/src/commands/init-ci.d.ts +1 -0
- package/dist/src/commands/init-ci.js +8 -3
- package/dist/src/commands/init-ci.js.map +1 -1
- package/dist/src/commands/legacy.js +6 -1
- package/dist/src/commands/legacy.js.map +1 -1
- package/dist/src/commands/scan.js +7 -1
- package/dist/src/commands/scan.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 +1 -0
- package/dist/src/commands/setup-ci-conversion.js +1 -0
- 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 +13 -1
- package/dist/src/commands/test.js.map +1 -1
- package/dist/src/findings.js +41 -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 +2 -0
- package/dist/src/index.js +2 -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/reporters/attack-sim.d.ts +2 -0
- package/dist/src/reporters/attack-sim.js +84 -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/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/storage.js +3 -2
- package/dist/src/storage.js.map +1 -1
- package/dist/src/telemetry.d.ts +3 -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/agent-ecosystem-promotion-plan.md +244 -0
- package/docs/agent-tasks.md +95 -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/contributor-proof-cards/README.md +33 -0
- package/docs/contributor-recognition.md +92 -0
- package/docs/feishu-lark-mcp.md +1 -1
- package/docs/github-code-scanning-for-mcp.md +1 -1
- package/docs/launch.md +64 -0
- package/docs/mcp-attack-simulator.md +57 -0
- package/docs/mcp-server-safety-index.md +18 -12
- package/docs/proof.md +5 -2
- package/docs/receipt-graph.md +54 -0
- package/docs/safety-index/artifacts/antv-chart-server.json +21 -21
- package/docs/safety-index/artifacts/antv-chart-server.md +10 -10
- package/docs/safety-index/artifacts/browsermcp-server.json +17 -17
- package/docs/safety-index/artifacts/browsermcp-server.md +10 -10
- package/docs/safety-index/artifacts/context7-server.json +17 -17
- package/docs/safety-index/artifacts/context7-server.md +10 -10
- package/docs/safety-index/artifacts/cyanheads-git-mcp-server.json +2014 -0
- package/docs/safety-index/artifacts/cyanheads-git-mcp-server.md +163 -0
- package/docs/safety-index/artifacts/everything-server.json +131 -56
- package/docs/safety-index/artifacts/everything-server.md +24 -24
- package/docs/safety-index/artifacts/executeautomation-playwright-server.json +26 -18
- package/docs/safety-index/artifacts/executeautomation-playwright-server.md +10 -10
- package/docs/safety-index/artifacts/filesystem-server.json +128 -20
- package/docs/safety-index/artifacts/filesystem-server.md +10 -10
- 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 +1348 -0
- package/docs/safety-index/artifacts/kubernetes-server.md +150 -0
- package/docs/safety-index/artifacts/memory-server.json +75 -32
- package/docs/safety-index/artifacts/memory-server.md +35 -28
- package/docs/safety-index/artifacts/opentofu-server.json +25 -17
- package/docs/safety-index/artifacts/opentofu-server.md +11 -11
- package/docs/safety-index/artifacts/playwright-mcp-server.json +56 -20
- package/docs/safety-index/artifacts/playwright-mcp-server.md +12 -12
- package/docs/safety-index/artifacts/promptopia-server.json +28 -20
- package/docs/safety-index/artifacts/promptopia-server.md +11 -11
- package/docs/safety-index/artifacts/puppeteer-server.json +42 -30
- package/docs/safety-index/artifacts/puppeteer-server.md +28 -28
- package/docs/safety-index/artifacts/ref-tools-server.json +17 -17
- package/docs/safety-index/artifacts/ref-tools-server.md +9 -9
- package/docs/safety-index/artifacts/sequential-thinking-server.json +20 -21
- package/docs/safety-index/artifacts/sequential-thinking-server.md +10 -10
- package/docs/safety-index/targets.json +90 -14
- package/docs/setup-ci-doctor.md +2 -0
- package/docs/target-gallery.md +49 -0
- package/docs/target-registry.md +5 -1
- package/docs/tool-call-receipts.md +116 -0
- package/package.json +20 -2
- package/schemas/run-artifact.schema.json +1 -0
- package/scripts/postinstall.mjs +123 -0
package/docs/launch.md
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# MCP Observatory Launch Page
|
|
2
|
+
|
|
3
|
+
```
|
|
4
|
+
███╗ ███╗ ██████╗██████╗
|
|
5
|
+
████╗ ████║██╔════╝██╔══██╗
|
|
6
|
+
██╔████╔██║██║ ██████╔╝
|
|
7
|
+
██║╚██╔╝██║██║ ██╔═══╝
|
|
8
|
+
██║ ╚═╝ ██║╚██████╗██║
|
|
9
|
+
╚═╝ ╚═╝ ╚═════╝╚═╝
|
|
10
|
+
O B S E R V A T O R Y
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
MCP Observatory is the GitHub-native CI and security gate for MCP servers before agents depend on them.
|
|
14
|
+
|
|
15
|
+
It turns a local MCP check into evidence maintainers already understand: GitHub Actions, SARIF, Code Scanning findings, score badges, reproducible run artifacts, and maintainer-ready PR copy.
|
|
16
|
+
|
|
17
|
+
## The Fast Path
|
|
18
|
+
|
|
19
|
+
1. Test one MCP server locally.
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
npx @kryptosai/mcp-observatory test npx -y my-mcp-server --campaign launch-proof
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
2. Convert the passing check into CI.
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
npx @kryptosai/mcp-observatory setup-ci --all --command "npx -y my-mcp-server" --sarif --campaign launch-proof
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
3. Verify the adoption kit.
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
npx @kryptosai/mcp-observatory setup-ci --doctor
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Why Maintainers Use It
|
|
38
|
+
|
|
39
|
+
- Catch MCP startup, tool listing, prompt, resource, schema, and drift failures before agents rely on a server.
|
|
40
|
+
- Convert a one-off local check into a repeatable GitHub Action without hand-writing workflow YAML.
|
|
41
|
+
- Emit normalized SARIF so MCP findings can appear in GitHub Code Scanning.
|
|
42
|
+
- Share reproducible JSON and Markdown evidence without exposing private telemetry.
|
|
43
|
+
- Let coding agents run Observatory as an MCP server and inspect other MCP tools autonomously.
|
|
44
|
+
|
|
45
|
+
## Public Proof
|
|
46
|
+
|
|
47
|
+
- [GitHub Code Scanning for MCP servers](./github-code-scanning-for-mcp.md)
|
|
48
|
+
- [Code Scanning demo](./code-scanning-demo.md)
|
|
49
|
+
- [MCP Server Safety Index](./mcp-server-safety-index.md)
|
|
50
|
+
- [Target gallery](./target-gallery.md)
|
|
51
|
+
- [Public proof log](./proof.md)
|
|
52
|
+
- [Agent task pack](./agent-tasks.md)
|
|
53
|
+
|
|
54
|
+
## For Teams Running MCP In Production
|
|
55
|
+
|
|
56
|
+
If MCP servers are becoming production dependencies, use the same evidence model privately:
|
|
57
|
+
|
|
58
|
+
- CI rollout for selected MCP servers
|
|
59
|
+
- SARIF and GitHub Code Scanning setup
|
|
60
|
+
- private readiness review
|
|
61
|
+
- prioritized fixes and owner-ready next steps
|
|
62
|
+
- Safety Index-style report for internal agent dependencies
|
|
63
|
+
|
|
64
|
+
See the [MCP Readiness Review](./paid-pilot-offer.md). The default package starts at `$2,500`.
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# MCP Attack Simulator
|
|
2
|
+
|
|
3
|
+
MCP Attack Simulator runs safe, inert simulation checks over MCP server metadata, schemas, captured evidence, and optional baselines. It produces reproducible Safety Index evidence without executing destructive payloads.
|
|
4
|
+
|
|
5
|
+
## Quick Start
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npx @kryptosai/mcp-observatory attack-sim --target ./target.json --output attack-report.md --json attack-artifact.json
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
Or run directly against a server command:
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
npx @kryptosai/mcp-observatory attack-sim npx -y my-mcp-server
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
For GitHub Code Scanning:
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
npx @kryptosai/mcp-observatory attack-sim \
|
|
21
|
+
--target ./target.json \
|
|
22
|
+
--json attack-artifact.json \
|
|
23
|
+
--sarif attack-results.sarif \
|
|
24
|
+
--fail-on-high
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## What It Tests
|
|
28
|
+
|
|
29
|
+
- **Tool poisoning:** suspicious hidden or behavioral instructions in tool, prompt, resource, and schema metadata.
|
|
30
|
+
- **Exfiltration canaries:** fake Observatory canaries and credential-like values in captured evidence.
|
|
31
|
+
- **Permission boundaries:** broad path, command, network, or payload parameters combined with destructive or non-read-only behavior.
|
|
32
|
+
- **Contract drift:** when `--baseline <run-artifact>` is supplied, new destructive tools, broadened schemas, and removed required fields.
|
|
33
|
+
|
|
34
|
+
## Safe Simulation Only
|
|
35
|
+
|
|
36
|
+
The simulator does not run exploit payloads, contact attacker infrastructure, write or delete files, or exfiltrate data. It uses metadata, schema, drift, and already-captured response evidence.
|
|
37
|
+
|
|
38
|
+
If safe tool invocation is needed, run normal Observatory checks with existing deep invocation behavior and review the captured artifact. The simulator inspects captured evidence; it does not invent new dangerous calls.
|
|
39
|
+
|
|
40
|
+
## Outputs
|
|
41
|
+
|
|
42
|
+
- JSON: a normal MCP Observatory run artifact with an `attack-sim` check.
|
|
43
|
+
- Markdown: an attack simulation report with verdict, findings, reproduction command, and maintainer fixes.
|
|
44
|
+
- SARIF: Code Scanning findings for high and medium risk results.
|
|
45
|
+
|
|
46
|
+
## Baseline Drift
|
|
47
|
+
|
|
48
|
+
Use a prior run artifact as the baseline:
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
npx @kryptosai/mcp-observatory attack-sim \
|
|
52
|
+
--target ./target.json \
|
|
53
|
+
--baseline .mcp-observatory/runs/previous.json \
|
|
54
|
+
--output attack-report.md
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
This flags agent-contract changes that can turn a previously acceptable MCP dependency into a review item.
|
|
@@ -1,19 +1,21 @@
|
|
|
1
|
-
# MCP Server Safety Index
|
|
1
|
+
# MCP Server Safety Index
|
|
2
2
|
|
|
3
3
|
The MCP Server Safety Index is an evidence standard for MCP readiness. It is not a leaderboard and does not rank maintainers.
|
|
4
4
|
|
|
5
|
-
Each row links to a reproducible command, a JSON run artifact, and a Markdown report generated by MCP Observatory. The goal is to show which failure classes matter before teams let agents depend on MCP servers.
|
|
5
|
+
Each row links to a reproducible command, a JSON run artifact, and a Markdown report generated by MCP Observatory. Entries can also include safe attack-simulation evidence as public artifacts are generated. The goal is to show which failure classes matter before teams let agents depend on MCP servers. In short: MCP servers need [tool-call receipts](./tool-call-receipts.md), not badges.
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
Future public grades can include [MCP Attack Simulator](./mcp-attack-simulator.md) evidence. Attack Simulator findings add safe, reproducible checks for tool poisoning, exfiltration canaries, permission-boundary risk, and contract drift without executing destructive payloads.
|
|
8
|
+
|
|
9
|
+
For the rules behind this page, see the [Safety Methodology](./methodology.md). For a smaller server-to-evidence map, see the [MCP Receipt Graph](./receipt-graph.md).
|
|
8
10
|
|
|
9
11
|
## Snapshot
|
|
10
12
|
|
|
11
|
-
- Evaluated servers:
|
|
13
|
+
- Evaluated servers: 15
|
|
12
14
|
- Ready for CI: 10
|
|
13
|
-
- Needs review before production:
|
|
15
|
+
- Needs review before production: 3
|
|
14
16
|
- Unsafe default posture: 2
|
|
15
17
|
- Not reproducible: 0
|
|
16
|
-
- Latest run: 2026-
|
|
18
|
+
- Latest run: 2026-07-06T05:32:58.918Z
|
|
17
19
|
|
|
18
20
|
## Evaluations
|
|
19
21
|
|
|
@@ -26,12 +28,14 @@ For the rules behind this page, see the [Safety Methodology](./methodology.md).
|
|
|
26
28
|
| 5 | [Context7](https://github.com/upstash/context7) | Documentation / Search | **Ready for CI** | Prompt-injection-sensitive retrieval | `npx -y @upstash/context7-mcp` | [JSON](./safety-index/artifacts/context7-server.json) / [report](./safety-index/artifacts/context7-server.md) | Zero-config public package. |
|
|
27
29
|
| 6 | [Promptopia](https://www.npmjs.com/package/promptopia-mcp) | Prompts | **Ready for CI** | Prompt/resource contract | `npx -y promptopia-mcp` | [JSON](./safety-index/artifacts/promptopia-server.json) / [report](./safety-index/artifacts/promptopia-server.md) | Uses the checked-in prompt fixture through package defaults. |
|
|
28
30
|
| 7 | [Ref tools](https://www.npmjs.com/package/ref-tools-mcp) | Developer Tools | **Ready for CI** | Prompt/tool inventory | `npx -y ref-tools-mcp` | [JSON](./safety-index/artifacts/ref-tools-server.json) / [report](./safety-index/artifacts/ref-tools-server.md) | Zero-config public package. |
|
|
29
|
-
| 8 | [
|
|
30
|
-
| 9 | [
|
|
31
|
-
| 10 | [
|
|
32
|
-
| 11 | [
|
|
33
|
-
| 12 | [
|
|
34
|
-
| 13 | [
|
|
31
|
+
| 8 | [Git MCP Server](https://www.npmjs.com/package/@cyanheads/git-mcp-server) | Developer Tools | **Needs review before production** | Git tool boundary | `npx -y @cyanheads/git-mcp-server` | [JSON](./safety-index/artifacts/cyanheads-git-mcp-server.json) / [report](./safety-index/artifacts/cyanheads-git-mcp-server.md) | Zero-config public package. Keep tool invocation read-only unless a harmless fixture repository is added. |
|
|
32
|
+
| 9 | [OpenTofu MCP server](https://github.com/opentofu/opentofu-mcp-server) | Infrastructure | **Ready for CI** | Infrastructure tool surface | `npx -y @opentofu/opentofu-mcp-server` | [JSON](./safety-index/artifacts/opentofu-server.json) / [report](./safety-index/artifacts/opentofu-server.md) | Zero-config public package. |
|
|
33
|
+
| 10 | [Puppeteer MCP server](https://www.npmjs.com/package/puppeteer-mcp-server) | Browser Automation | **Ready for CI** | Browser/code execution boundary | `npx -y puppeteer-mcp-server` | [JSON](./safety-index/artifacts/puppeteer-server.json) / [report](./safety-index/artifacts/puppeteer-server.md) | Intentional browser evaluation is suppressed so remaining findings stay readable. |
|
|
34
|
+
| 11 | [BrowserMCP](https://github.com/BrowserMCP/mcp) | Browser Automation | **Ready for CI** | Browser-control boundary | `npx -y @browsermcp/mcp` | [JSON](./safety-index/artifacts/browsermcp-server.json) / [report](./safety-index/artifacts/browsermcp-server.md) | Zero-config public package. [public proof](https://github.com/BrowserMCP/mcp/pull/189) |
|
|
35
|
+
| 12 | [Microsoft Playwright MCP](https://github.com/microsoft/playwright-mcp) | Browser Automation | **Unsafe default posture** | Browser/code execution boundary | `npx -y @playwright/mcp` | [JSON](./safety-index/artifacts/playwright-mcp-server.json) / [report](./safety-index/artifacts/playwright-mcp-server.md) | Zero-config public package; security findings represent policy-review prompts, not a vulnerability claim. |
|
|
36
|
+
| 13 | [AntV chart MCP server](https://github.com/antvis/mcp-server-chart) | Visualization | **Ready for CI** | Artifact-producing tools | `npx -y @antv/mcp-server-chart` | [JSON](./safety-index/artifacts/antv-chart-server.json) / [report](./safety-index/artifacts/antv-chart-server.md) | Zero-config public package. [public proof](https://github.com/antvis/mcp-server-chart/pull/312) |
|
|
37
|
+
| 14 | [ExecuteAutomation Playwright MCP](https://github.com/executeautomation/mcp-playwright) | Browser Automation | **Unsafe default posture** | Startup/listing reproducibility | `npx -y @executeautomation/playwright-mcp-server` | [JSON](./safety-index/artifacts/executeautomation-playwright-server.json) / [report](./safety-index/artifacts/executeautomation-playwright-server.md) | Evaluated as a public package; current result should be treated as a maintainer conversation starter. [public proof](https://github.com/executeautomation/mcp-playwright/pull/225) |
|
|
38
|
+
| 15 | [Flux159 Kubernetes MCP server](https://github.com/Flux159/mcp-server-kubernetes) | Infrastructure / Kubernetes | **Needs review before production** | Command and cluster mutation boundary | `npx -y mcp-server-kubernetes` | [JSON](./safety-index/artifacts/kubernetes-server.json) / [report](./safety-index/artifacts/kubernetes-server.md) / [attack-sim](./safety-index/artifacts/kubernetes-server.attack.md) / [SARIF](./safety-index/artifacts/kubernetes-server.attack.sarif) | Zero-config public package. Evaluated without cluster credentials; findings are metadata and schema boundary prompts, not exploit claims. |
|
|
35
39
|
|
|
36
40
|
## Patterns Observed
|
|
37
41
|
|
|
@@ -39,6 +43,8 @@ For the rules behind this page, see the [Safety Methodology](./methodology.md).
|
|
|
39
43
|
- Artifact-producing tools: 1 server(s)
|
|
40
44
|
- Broad protocol surface: 1 server(s)
|
|
41
45
|
- Browser-control boundary: 1 server(s)
|
|
46
|
+
- Command and cluster mutation boundary: 1 server(s)
|
|
47
|
+
- Git tool boundary: 1 server(s)
|
|
42
48
|
- Infrastructure tool surface: 1 server(s)
|
|
43
49
|
- Persistent state tools: 1 server(s)
|
|
44
50
|
- Prompt-injection-sensitive retrieval: 1 server(s)
|
package/docs/proof.md
CHANGED
|
@@ -5,8 +5,8 @@ MCP Observatory is early, but it is already a working MCP testing/security stack
|
|
|
5
5
|
## Current Public Surface
|
|
6
6
|
|
|
7
7
|
- npm package: `@kryptosai/mcp-observatory`
|
|
8
|
-
- GitHub Action: `KryptosAI/mcp-observatory/action@v0.
|
|
9
|
-
- Latest release: `v0.
|
|
8
|
+
- GitHub Action: `KryptosAI/mcp-observatory/action@v0.27.0`
|
|
9
|
+
- Latest release: `v0.27.0`
|
|
10
10
|
- CLI command count: scan, test, record, replay, verify, diff, watch, suggest, serve, lock, history, setup-ci, init-ci, ci-report, enterprise-report, score, badge, cloud
|
|
11
11
|
- Test suite: 348 passing tests across 45 test files as of July 1, 2026
|
|
12
12
|
- GitHub traffic snapshot: 745 clones and 232 unique cloners in the visible June 2026 traffic window
|
|
@@ -76,6 +76,9 @@ Open and accepted third-party integrations are tracked here:
|
|
|
76
76
|
|
|
77
77
|
GitHub code search shows public references outside the main repo. These are discovery/listing signals, not customer claims:
|
|
78
78
|
|
|
79
|
+
- PulseMCP has a maintainer-recognized `io.github.KryptosAI/mcp-observatory` listing with `server.json` visibility.
|
|
80
|
+
- Smithery, Glama, LobeHub, Yarn/Vibehackers, and other MCP catalogs surface MCP Observatory install or scorecard pages.
|
|
81
|
+
- MseeP has an unclaimed listing for MCP Observatory. Treat it as a directory opportunity until ownership, scan evidence, and badge wording are reviewed.
|
|
79
82
|
- `punkpeye/awesome-mcp-devtools` lists MCP Observatory in an MCP developer-tools index.
|
|
80
83
|
- `linny006/mcp-servers-live` mirrors a public MCP Observatory listing page.
|
|
81
84
|
- `gabrielmoreira/awesome-ai-rabbit-holes` catalogs the GitHub project.
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# MCP Receipt Graph
|
|
2
|
+
|
|
3
|
+
Agent trust should be a receipt graph, not a follower graph.
|
|
4
|
+
|
|
5
|
+
A social graph says who is popular. A receipt graph says what was verified, what could not happen during the run, which artifact can be rerun, and what changed since the last trusted state.
|
|
6
|
+
|
|
7
|
+
Use this page as the first public map from MCP servers to reproducible evidence. It is intentionally small: a receipt graph should start with high-quality, rerunnable receipts before it tries to become a giant directory.
|
|
8
|
+
|
|
9
|
+
## Receipt Graph Fields
|
|
10
|
+
|
|
11
|
+
| Field | Meaning |
|
|
12
|
+
| --- | --- |
|
|
13
|
+
| Server | Public MCP server, package, or repo. |
|
|
14
|
+
| Receipt | JSON/Markdown evidence generated by MCP Observatory. |
|
|
15
|
+
| Attack evidence | Safe `attack-sim` command, report, or SARIF. |
|
|
16
|
+
| CI/SARIF path | Whether the next step is a maintainer CI gate, Code Scanning, or both. |
|
|
17
|
+
| Capability envelope | What the run was allowed to access. |
|
|
18
|
+
| Last verified | Timestamp of the latest public Safety Index refresh. |
|
|
19
|
+
|
|
20
|
+
## Seed Graph
|
|
21
|
+
|
|
22
|
+
| Server | Receipt | Attack evidence | CI/SARIF path | Capability envelope | Last verified |
|
|
23
|
+
| --- | --- | --- | --- | --- | --- |
|
|
24
|
+
| [Official everything server](https://github.com/modelcontextprotocol/servers) | [JSON](./safety-index/artifacts/everything-server.json) / [report](./safety-index/artifacts/everything-server.md) | `attack-sim npx -y @modelcontextprotocol/server-everything` | Public reference baseline; CI-ready. | Public package, no secrets, no production data. | 2026-07-06 |
|
|
25
|
+
| [Official sequential thinking server](https://github.com/modelcontextprotocol/servers) | [JSON](./safety-index/artifacts/sequential-thinking-server.json) / [report](./safety-index/artifacts/sequential-thinking-server.md) | `attack-sim npx -y @modelcontextprotocol/server-sequential-thinking` | Public reference baseline; CI-ready. | Public package, no secrets, no production data. | 2026-07-06 |
|
|
26
|
+
| [Official memory server](https://github.com/modelcontextprotocol/servers) | [JSON](./safety-index/artifacts/memory-server.json) / [report](./safety-index/artifacts/memory-server.md) | `attack-sim npx -y @modelcontextprotocol/server-memory` | Public reference baseline; CI-ready. | Public package, no secrets, no production data. | 2026-07-06 |
|
|
27
|
+
| [Context7](https://github.com/upstash/context7) | [JSON](./safety-index/artifacts/context7-server.json) / [report](./safety-index/artifacts/context7-server.md) | `attack-sim npx -y @upstash/context7-mcp` | Maintainer CI conversation candidate. | Public package, no secrets, no production data. | 2026-07-06 |
|
|
28
|
+
| [BrowserMCP](https://github.com/BrowserMCP/mcp) | [JSON](./safety-index/artifacts/browsermcp-server.json) / [report](./safety-index/artifacts/browsermcp-server.md) | `attack-sim npx -y @browsermcp/mcp` | Browser boundary candidate for CI/SARIF. | Public package, no secrets, no production credentials. | 2026-07-06 |
|
|
29
|
+
| [Microsoft Playwright MCP](https://github.com/microsoft/playwright-mcp) | [JSON](./safety-index/artifacts/playwright-mcp-server.json) / [report](./safety-index/artifacts/playwright-mcp-server.md) | `attack-sim npx -y @playwright/mcp` | High-capability browser boundary; Code Scanning useful. | Public package, no secrets, no production credentials. | 2026-07-06 |
|
|
30
|
+
| [Puppeteer MCP server](https://www.npmjs.com/package/puppeteer-mcp-server) | [JSON](./safety-index/artifacts/puppeteer-server.json) / [report](./safety-index/artifacts/puppeteer-server.md) | `attack-sim npx -y puppeteer-mcp-server` | Browser boundary candidate for review before production. | Public package, no secrets, no production credentials. | 2026-07-06 |
|
|
31
|
+
| [OpenTofu MCP server](https://github.com/opentofu/opentofu-mcp-server) | [JSON](./safety-index/artifacts/opentofu-server.json) / [report](./safety-index/artifacts/opentofu-server.md) | `attack-sim npx -y @opentofu/opentofu-mcp-server` | Infrastructure tool surface; CI/SARIF recommended. | Public package, no secrets, no production infrastructure. | 2026-07-06 |
|
|
32
|
+
| [Flux159 Kubernetes MCP server](https://github.com/Flux159/mcp-server-kubernetes) | [JSON](./safety-index/artifacts/kubernetes-server.json) / [report](./safety-index/artifacts/kubernetes-server.md) | [attack-sim](./safety-index/artifacts/kubernetes-server.attack.md) / [SARIF](./safety-index/artifacts/kubernetes-server.attack.sarif) | Kubernetes command and cluster mutation boundary; CI/SARIF recommended before agent dependency. | Public package, no secrets, no kubeconfig, no cluster tool invocation. | 2026-07-06 |
|
|
33
|
+
|
|
34
|
+
## How To Add A Node
|
|
35
|
+
|
|
36
|
+
1. Open a [Drop an MCP server, get a receipt request](https://github.com/KryptosAI/mcp-observatory/issues/new?template=tool-call-receipt-request.yml).
|
|
37
|
+
2. Provide a public MCP server and safe startup command.
|
|
38
|
+
3. Run:
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
npx @kryptosai/mcp-observatory test <safe startup command> --json run-artifact.json --markdown run-report.md
|
|
42
|
+
npx @kryptosai/mcp-observatory attack-sim <safe startup command> --json attack-artifact.json --output attack-report.md --sarif attack-results.sarif
|
|
43
|
+
npx @kryptosai/mcp-observatory setup-ci --all --command "<safe startup command>" --sarif
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
4. Attach sanitized artifacts or open a focused PR.
|
|
47
|
+
|
|
48
|
+
## Agent-Native Ask
|
|
49
|
+
|
|
50
|
+
```text
|
|
51
|
+
Name one MCP server your agent depends on. I will help turn it into a reproducible receipt: safe startup command, run artifact, attack-sim evidence, SARIF, and a CI gate maintainers can review.
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
For the public intake loop, see [Drop an MCP server, get a receipt](./drop-server-get-receipt.md) or comment on [the live GitHub thread](https://github.com/KryptosAI/mcp-observatory/issues/146).
|
|
@@ -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-06T014704792Z_4aa8d9c4",
|
|
6
|
+
"createdAt": "2026-07-06T01:47:04.792Z",
|
|
7
|
+
"toolVersion": "0.26.1",
|
|
8
8
|
"target": {
|
|
9
9
|
"targetId": "antv-chart-server",
|
|
10
10
|
"adapter": "local-process",
|
|
@@ -25,8 +25,8 @@
|
|
|
25
25
|
"serverVersion": "0.8.x"
|
|
26
26
|
},
|
|
27
27
|
"environment": {
|
|
28
|
-
"platform": "darwin
|
|
29
|
-
"nodeVersion": "
|
|
28
|
+
"platform": "darwin 24.0.0",
|
|
29
|
+
"nodeVersion": "v25.8.1"
|
|
30
30
|
},
|
|
31
31
|
"summary": {
|
|
32
32
|
"total": 7,
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
"id": "tools",
|
|
44
44
|
"capability": "tools",
|
|
45
45
|
"status": "pass",
|
|
46
|
-
"durationMs":
|
|
46
|
+
"durationMs": 1.9061670000010054,
|
|
47
47
|
"message": "Advertised capability responded with the minimal expected shape (27 items).",
|
|
48
48
|
"evidence": [
|
|
49
49
|
{
|
|
@@ -82,9 +82,9 @@
|
|
|
82
82
|
"generate_spreadsheet"
|
|
83
83
|
],
|
|
84
84
|
"diagnostics": [
|
|
85
|
-
"[MCP-Server-Chart] 2026-
|
|
86
|
-
"[MCP-Server-Chart] 2026-
|
|
87
|
-
"[MCP-Server-Chart] 2026-
|
|
85
|
+
"[MCP-Server-Chart] 2026-07-06T01:47:05.616Z ℹ️ setting up tool handlers...",
|
|
86
|
+
"[MCP-Server-Chart] 2026-07-06T01:47:05.617Z ℹ️ tool handlers set up",
|
|
87
|
+
"[MCP-Server-Chart] 2026-07-06T01:47:05.618Z ✅ Stdio MCP Server started"
|
|
88
88
|
],
|
|
89
89
|
"schemas": {
|
|
90
90
|
"generate_area_chart": {
|
|
@@ -2602,7 +2602,7 @@
|
|
|
2602
2602
|
"id": "prompts",
|
|
2603
2603
|
"capability": "prompts",
|
|
2604
2604
|
"status": "unsupported",
|
|
2605
|
-
"durationMs": 0.
|
|
2605
|
+
"durationMs": 0.0009579999987181509,
|
|
2606
2606
|
"message": "Prompts are not advertised by the target.",
|
|
2607
2607
|
"evidence": [
|
|
2608
2608
|
{
|
|
@@ -2618,7 +2618,7 @@
|
|
|
2618
2618
|
"id": "resources",
|
|
2619
2619
|
"capability": "resources",
|
|
2620
2620
|
"status": "unsupported",
|
|
2621
|
-
"durationMs": 0.
|
|
2621
|
+
"durationMs": 0.002207999999882304,
|
|
2622
2622
|
"message": "Resources are not advertised by the target.",
|
|
2623
2623
|
"evidence": [
|
|
2624
2624
|
{
|
|
@@ -2634,7 +2634,7 @@
|
|
|
2634
2634
|
"id": "security-lite",
|
|
2635
2635
|
"capability": "security-lite",
|
|
2636
2636
|
"status": "pass",
|
|
2637
|
-
"durationMs": 0.
|
|
2637
|
+
"durationMs": 0.08966599999985192,
|
|
2638
2638
|
"message": "No security issues detected (lightweight scan).",
|
|
2639
2639
|
"evidence": [
|
|
2640
2640
|
{
|
|
@@ -2650,7 +2650,7 @@
|
|
|
2650
2650
|
"id": "conformance",
|
|
2651
2651
|
"capability": "conformance",
|
|
2652
2652
|
"status": "pass",
|
|
2653
|
-
"durationMs":
|
|
2653
|
+
"durationMs": 1.4091669999997976,
|
|
2654
2654
|
"message": "All 7 conformance checks passed.",
|
|
2655
2655
|
"evidence": [
|
|
2656
2656
|
{
|
|
@@ -2676,7 +2676,7 @@
|
|
|
2676
2676
|
"id": "schema-quality",
|
|
2677
2677
|
"capability": "schema-quality",
|
|
2678
2678
|
"status": "pass",
|
|
2679
|
-
"durationMs": 1.
|
|
2679
|
+
"durationMs": 1.022541000000274,
|
|
2680
2680
|
"message": "All 27 item(s) have good schema quality.",
|
|
2681
2681
|
"evidence": [
|
|
2682
2682
|
{
|
|
@@ -2693,7 +2693,7 @@
|
|
|
2693
2693
|
"id": "security",
|
|
2694
2694
|
"capability": "security",
|
|
2695
2695
|
"status": "pass",
|
|
2696
|
-
"durationMs":
|
|
2696
|
+
"durationMs": 0.9119160000009288,
|
|
2697
2697
|
"message": "No security issues detected.",
|
|
2698
2698
|
"evidence": [
|
|
2699
2699
|
{
|
|
@@ -2750,16 +2750,16 @@
|
|
|
2750
2750
|
"weight": 0.1,
|
|
2751
2751
|
"score": 100,
|
|
2752
2752
|
"details": [
|
|
2753
|
-
"Connect:
|
|
2754
|
-
"p95 latency:
|
|
2753
|
+
"Connect: 830ms",
|
|
2754
|
+
"p95 latency: 2ms (3 operations)"
|
|
2755
2755
|
]
|
|
2756
2756
|
}
|
|
2757
2757
|
]
|
|
2758
2758
|
},
|
|
2759
2759
|
"performanceMetrics": {
|
|
2760
|
-
"connectMs":
|
|
2761
|
-
"toolsListMs":
|
|
2762
|
-
"promptsListMs": 0.
|
|
2763
|
-
"resourcesListMs": 0.
|
|
2760
|
+
"connectMs": 830.341375,
|
|
2761
|
+
"toolsListMs": 1.9061670000010054,
|
|
2762
|
+
"promptsListMs": 0.0009579999987181509,
|
|
2763
|
+
"resourcesListMs": 0.002207999999882304
|
|
2764
2764
|
}
|
|
2765
2765
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# MCP Observatory Run Report
|
|
2
2
|
|
|
3
|
-
Generated at 2026-
|
|
3
|
+
Generated at 2026-07-06T01:47:04.792Z
|
|
4
4
|
|
|
5
5
|
## Target and Environment Metadata
|
|
6
6
|
|
|
@@ -8,8 +8,8 @@ Generated at 2026-06-24T02:07:41.323Z
|
|
|
8
8
|
- Adapter: `local-process`
|
|
9
9
|
- Command: `npx -y @antv/mcp-server-chart`
|
|
10
10
|
- Server: `mcp-server-chart 0.8.x`
|
|
11
|
-
- Platform: `darwin
|
|
12
|
-
- Node: `
|
|
11
|
+
- Platform: `darwin 24.0.0`
|
|
12
|
+
- Node: `v25.8.1`
|
|
13
13
|
|
|
14
14
|
## Executive Summary
|
|
15
15
|
|
|
@@ -47,11 +47,11 @@ _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 | conformance | pass |
|
|
51
|
-
| healthy | schema-quality | pass | 1.
|
|
52
|
-
| healthy | security | pass |
|
|
53
|
-
| healthy | security-lite | pass | 0.
|
|
54
|
-
| healthy | tools | pass |
|
|
50
|
+
| healthy | conformance | pass | 1.41 | All 7 conformance checks passed. |
|
|
51
|
+
| healthy | schema-quality | pass | 1.02 | All 27 item(s) have good schema quality. |
|
|
52
|
+
| healthy | security | pass | 0.91 | No security issues detected. |
|
|
53
|
+
| healthy | security-lite | pass | 0.09 | No security issues detected (lightweight scan). |
|
|
54
|
+
| healthy | tools | pass | 1.91 | Advertised capability responded with the minimal expected shape (27 items). |
|
|
55
55
|
| confirm intent | prompts | unsupported | 0.00 | Prompts are not advertised by the target. |
|
|
56
56
|
| confirm intent | resources | unsupported | 0.00 | Resources are not advertised by the target. |
|
|
57
57
|
|
|
@@ -115,7 +115,7 @@ Summary: Advertised capability responded with the minimal expected shape (27 ite
|
|
|
115
115
|
- Minimal shape present: `true`
|
|
116
116
|
- Item count: `27`
|
|
117
117
|
- Identifiers: generate_area_chart, generate_bar_chart, generate_boxplot_chart, generate_column_chart, generate_district_map (+22 more)
|
|
118
|
-
- Diagnostics: [MCP-Server-Chart] 2026-
|
|
118
|
+
- Diagnostics: [MCP-Server-Chart] 2026-07-06T01:47:05.616Z ℹ️ setting up tool handlers..., [MCP-Server-Chart] 2026-07-06T01:47:05.617Z ℹ️ tool handlers set up, [MCP-Server-Chart] 2026-07-06T01:47:05.618Z ✅ Stdio MCP Server started
|
|
119
119
|
|
|
120
120
|
### prompts — unsupported
|
|
121
121
|
|
|
@@ -152,5 +152,5 @@ npm run cli -- report --run <path-to-run-artifact.json> --format markdown
|
|
|
152
152
|
|
|
153
153
|
- Artifact type: `run`
|
|
154
154
|
- Schema version: `1.0.0`
|
|
155
|
-
- Run ID: `run_2026-
|
|
155
|
+
- Run ID: `run_2026-07-06T014704792Z_4aa8d9c4`
|
|
156
156
|
- Gate: `pass`
|
|
@@ -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-06T014702689Z_66630a02",
|
|
6
|
+
"createdAt": "2026-07-06T01:47:02.689Z",
|
|
7
|
+
"toolVersion": "0.26.1",
|
|
8
8
|
"target": {
|
|
9
9
|
"targetId": "browsermcp-server",
|
|
10
10
|
"adapter": "local-process",
|
|
@@ -25,8 +25,8 @@
|
|
|
25
25
|
"serverVersion": "0.1.3"
|
|
26
26
|
},
|
|
27
27
|
"environment": {
|
|
28
|
-
"platform": "darwin
|
|
29
|
-
"nodeVersion": "
|
|
28
|
+
"platform": "darwin 24.0.0",
|
|
29
|
+
"nodeVersion": "v25.8.1"
|
|
30
30
|
},
|
|
31
31
|
"summary": {
|
|
32
32
|
"total": 7,
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
"id": "tools",
|
|
44
44
|
"capability": "tools",
|
|
45
45
|
"status": "pass",
|
|
46
|
-
"durationMs":
|
|
46
|
+
"durationMs": 0.9707080000007409,
|
|
47
47
|
"message": "Advertised capability responded with the minimal expected shape (12 items).",
|
|
48
48
|
"evidence": [
|
|
49
49
|
{
|
|
@@ -242,7 +242,7 @@
|
|
|
242
242
|
"id": "prompts",
|
|
243
243
|
"capability": "prompts",
|
|
244
244
|
"status": "unsupported",
|
|
245
|
-
"durationMs": 0.
|
|
245
|
+
"durationMs": 0.0007919999989098869,
|
|
246
246
|
"message": "Prompts are not advertised by the target.",
|
|
247
247
|
"evidence": [
|
|
248
248
|
{
|
|
@@ -258,7 +258,7 @@
|
|
|
258
258
|
"id": "resources",
|
|
259
259
|
"capability": "resources",
|
|
260
260
|
"status": "pass",
|
|
261
|
-
"durationMs": 0.
|
|
261
|
+
"durationMs": 0.6247500000008586,
|
|
262
262
|
"message": "Advertised capability responded with the minimal expected shape, but one optional resource endpoint appears unsupported.",
|
|
263
263
|
"evidence": [
|
|
264
264
|
{
|
|
@@ -285,7 +285,7 @@
|
|
|
285
285
|
"id": "security-lite",
|
|
286
286
|
"capability": "security-lite",
|
|
287
287
|
"status": "pass",
|
|
288
|
-
"durationMs": 0.
|
|
288
|
+
"durationMs": 0.02770799999962037,
|
|
289
289
|
"message": "No security issues detected (lightweight scan).",
|
|
290
290
|
"evidence": [
|
|
291
291
|
{
|
|
@@ -301,7 +301,7 @@
|
|
|
301
301
|
"id": "conformance",
|
|
302
302
|
"capability": "conformance",
|
|
303
303
|
"status": "pass",
|
|
304
|
-
"durationMs":
|
|
304
|
+
"durationMs": 1.5951249999998254,
|
|
305
305
|
"message": "All 7 conformance checks passed.",
|
|
306
306
|
"evidence": [
|
|
307
307
|
{
|
|
@@ -327,7 +327,7 @@
|
|
|
327
327
|
"id": "schema-quality",
|
|
328
328
|
"capability": "schema-quality",
|
|
329
329
|
"status": "pass",
|
|
330
|
-
"durationMs": 0.
|
|
330
|
+
"durationMs": 0.48875000000043656,
|
|
331
331
|
"message": "All 12 item(s) have good schema quality.",
|
|
332
332
|
"evidence": [
|
|
333
333
|
{
|
|
@@ -344,7 +344,7 @@
|
|
|
344
344
|
"id": "security",
|
|
345
345
|
"capability": "security",
|
|
346
346
|
"status": "pass",
|
|
347
|
-
"durationMs": 0.
|
|
347
|
+
"durationMs": 0.25716600000123435,
|
|
348
348
|
"message": "No security issues detected.",
|
|
349
349
|
"evidence": [
|
|
350
350
|
{
|
|
@@ -401,16 +401,16 @@
|
|
|
401
401
|
"weight": 0.1,
|
|
402
402
|
"score": 100,
|
|
403
403
|
"details": [
|
|
404
|
-
"Connect:
|
|
404
|
+
"Connect: 705ms",
|
|
405
405
|
"p95 latency: 1ms (3 operations)"
|
|
406
406
|
]
|
|
407
407
|
}
|
|
408
408
|
]
|
|
409
409
|
},
|
|
410
410
|
"performanceMetrics": {
|
|
411
|
-
"connectMs":
|
|
412
|
-
"toolsListMs":
|
|
413
|
-
"promptsListMs": 0.
|
|
414
|
-
"resourcesListMs": 0.
|
|
411
|
+
"connectMs": 705.3232910000006,
|
|
412
|
+
"toolsListMs": 0.9707080000007409,
|
|
413
|
+
"promptsListMs": 0.0007919999989098869,
|
|
414
|
+
"resourcesListMs": 0.6247500000008586
|
|
415
415
|
}
|
|
416
416
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# MCP Observatory Run Report
|
|
2
2
|
|
|
3
|
-
Generated at 2026-
|
|
3
|
+
Generated at 2026-07-06T01:47:02.689Z
|
|
4
4
|
|
|
5
5
|
## Target and Environment Metadata
|
|
6
6
|
|
|
@@ -8,8 +8,8 @@ Generated at 2026-06-24T02:07:31.112Z
|
|
|
8
8
|
- Adapter: `local-process`
|
|
9
9
|
- Command: `npx -y @browsermcp/mcp`
|
|
10
10
|
- Server: `Browser MCP 0.1.3`
|
|
11
|
-
- Platform: `darwin
|
|
12
|
-
- Node: `
|
|
11
|
+
- Platform: `darwin 24.0.0`
|
|
12
|
+
- Node: `v25.8.1`
|
|
13
13
|
|
|
14
14
|
## Executive Summary
|
|
15
15
|
|
|
@@ -47,12 +47,12 @@ _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 | conformance | pass |
|
|
51
|
-
| healthy | resources | pass | 0.
|
|
52
|
-
| healthy | schema-quality | pass | 0.
|
|
53
|
-
| healthy | security | pass | 0.
|
|
54
|
-
| healthy | security-lite | pass | 0.
|
|
55
|
-
| healthy | tools | pass |
|
|
50
|
+
| healthy | conformance | pass | 1.60 | All 7 conformance checks passed. |
|
|
51
|
+
| healthy | resources | pass | 0.62 | Advertised capability responded with the minimal expected shape, but one optional resource endpoint appears unsupported. |
|
|
52
|
+
| healthy | schema-quality | pass | 0.49 | All 12 item(s) have good schema quality. |
|
|
53
|
+
| healthy | security | pass | 0.26 | No security issues detected. |
|
|
54
|
+
| healthy | security-lite | pass | 0.03 | No security issues detected (lightweight scan). |
|
|
55
|
+
| healthy | tools | pass | 0.97 | Advertised capability responded with the minimal expected shape (12 items). |
|
|
56
56
|
| confirm intent | prompts | unsupported | 0.00 | Prompts are not advertised by the target. |
|
|
57
57
|
|
|
58
58
|
## Evidence Snippets
|
|
@@ -159,5 +159,5 @@ npm run cli -- report --run <path-to-run-artifact.json> --format markdown
|
|
|
159
159
|
|
|
160
160
|
- Artifact type: `run`
|
|
161
161
|
- Schema version: `1.0.0`
|
|
162
|
-
- Run ID: `run_2026-
|
|
162
|
+
- Run ID: `run_2026-07-06T014702689Z_66630a02`
|
|
163
163
|
- Gate: `pass`
|