@kryptosai/mcp-observatory 1.28.2 → 1.28.3
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/CONTRIBUTORS.md +4 -1
- package/README.md +109 -14
- package/README.zh-CN.md +654 -0
- package/dist/src/adapters/http.js +13 -4
- package/dist/src/adapters/http.js.map +1 -1
- package/dist/src/checks/runtime-profile.d.ts +5 -0
- package/dist/src/checks/runtime-profile.js +214 -0
- package/dist/src/checks/runtime-profile.js.map +1 -0
- package/dist/src/checks/security-rules.js +18 -0
- package/dist/src/checks/security-rules.js.map +1 -1
- package/dist/src/checks/security.js +33 -65
- package/dist/src/checks/security.js.map +1 -1
- package/dist/src/checks/skill-scan.d.ts +46 -0
- package/dist/src/checks/skill-scan.js +665 -0
- package/dist/src/checks/skill-scan.js.map +1 -0
- package/dist/src/cli.js +15 -2
- package/dist/src/cli.js.map +1 -1
- package/dist/src/commands/enforce.d.ts +12 -0
- package/dist/src/commands/enforce.js +187 -0
- package/dist/src/commands/enforce.js.map +1 -0
- package/dist/src/commands/helpers.d.ts +2 -1
- package/dist/src/commands/helpers.js +9 -1
- package/dist/src/commands/helpers.js.map +1 -1
- package/dist/src/commands/legacy.js +3 -0
- package/dist/src/commands/legacy.js.map +1 -1
- package/dist/src/commands/risk-graph.d.ts +2 -0
- package/dist/src/commands/risk-graph.js +64 -0
- package/dist/src/commands/risk-graph.js.map +1 -0
- package/dist/src/commands/scan.js +36 -9
- package/dist/src/commands/scan.js.map +1 -1
- package/dist/src/commands/score.js.map +1 -1
- package/dist/src/commands/skill-scan.d.ts +6 -0
- package/dist/src/commands/skill-scan.js +62 -0
- package/dist/src/commands/skill-scan.js.map +1 -0
- package/dist/src/commands/test.js +13 -0
- package/dist/src/commands/test.js.map +1 -1
- package/dist/src/commands/watch.js +13 -8
- package/dist/src/commands/watch.js.map +1 -1
- package/dist/src/discovery.d.ts +15 -1
- package/dist/src/discovery.js +251 -35
- package/dist/src/discovery.js.map +1 -1
- package/dist/src/index.d.ts +3 -1
- package/dist/src/index.js +3 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/receipt.d.ts +4 -1
- package/dist/src/receipt.js +85 -0
- package/dist/src/receipt.js.map +1 -1
- package/dist/src/reporters/markdown.js +39 -0
- package/dist/src/reporters/markdown.js.map +1 -1
- package/dist/src/reporters/terminal.d.ts +2 -0
- package/dist/src/reporters/terminal.js +55 -2
- package/dist/src/reporters/terminal.js.map +1 -1
- package/dist/src/risk-graph.d.ts +64 -0
- package/dist/src/risk-graph.js +452 -0
- package/dist/src/risk-graph.js.map +1 -0
- package/dist/src/runner.js +6 -0
- package/dist/src/runner.js.map +1 -1
- package/dist/src/server.d.ts +1 -3
- package/dist/src/server.js +29 -645
- package/dist/src/server.js.map +1 -1
- package/dist/src/storage.js +13 -9
- package/dist/src/storage.js.map +1 -1
- package/dist/src/telemetry.d.ts +7 -0
- package/dist/src/telemetry.js.map +1 -1
- package/dist/src/tools/check-server.d.ts +27 -0
- package/dist/src/tools/check-server.js +46 -0
- package/dist/src/tools/check-server.js.map +1 -0
- package/dist/src/tools/ci-report.d.ts +21 -0
- package/dist/src/tools/ci-report.js +38 -0
- package/dist/src/tools/ci-report.js.map +1 -0
- package/dist/src/tools/diff-runs.d.ts +28 -0
- package/dist/src/tools/diff-runs.js +39 -0
- package/dist/src/tools/diff-runs.js.map +1 -0
- package/dist/src/tools/get-history.d.ts +21 -0
- package/dist/src/tools/get-history.js +37 -0
- package/dist/src/tools/get-history.js.map +1 -0
- package/dist/src/tools/get-last-run.d.ts +21 -0
- package/dist/src/tools/get-last-run.js +47 -0
- package/dist/src/tools/get-last-run.js.map +1 -0
- package/dist/src/tools/helpers.d.ts +8 -0
- package/dist/src/tools/helpers.js +32 -0
- package/dist/src/tools/helpers.js.map +1 -0
- package/dist/src/tools/lock-verify.d.ts +21 -0
- package/dist/src/tools/lock-verify.js +47 -0
- package/dist/src/tools/lock-verify.js.map +1 -0
- package/dist/src/tools/record.d.ts +23 -0
- package/dist/src/tools/record.js +48 -0
- package/dist/src/tools/record.js.map +1 -0
- package/dist/src/tools/replay.d.ts +21 -0
- package/dist/src/tools/replay.js +54 -0
- package/dist/src/tools/replay.js.map +1 -0
- package/dist/src/tools/scan.d.ts +18 -0
- package/dist/src/tools/scan.js +43 -0
- package/dist/src/tools/scan.js.map +1 -0
- package/dist/src/tools/score-server.d.ts +23 -0
- package/dist/src/tools/score-server.js +53 -0
- package/dist/src/tools/score-server.js.map +1 -0
- package/dist/src/tools/suggest-servers.d.ts +21 -0
- package/dist/src/tools/suggest-servers.js +114 -0
- package/dist/src/tools/suggest-servers.js.map +1 -0
- package/dist/src/tools/verify-tool.d.ts +25 -0
- package/dist/src/tools/verify-tool.js +48 -0
- package/dist/src/tools/verify-tool.js.map +1 -0
- package/dist/src/tools/watch.d.ts +23 -0
- package/dist/src/tools/watch.js +67 -0
- package/dist/src/tools/watch.js.map +1 -0
- package/dist/src/types.d.ts +26 -1
- package/dist/src/utils/security.d.ts +3 -0
- package/dist/src/utils/security.js +37 -0
- package/dist/src/utils/security.js.map +1 -0
- package/dist/src/validate.d.ts +1 -0
- package/dist/src/validate.js +119 -35
- package/dist/src/validate.js.map +1 -1
- package/docs/agent-tasks.md +1 -1
- package/docs/commercial-boundary.md +9 -1
- package/docs/contributor-recognition.md +2 -0
- package/docs/demo.svg +1 -59
- package/docs/mcp-receipts.md +9 -0
- package/docs/mcp-server-safety-index.md +21 -16
- package/docs/metrics-dashboard.md +17 -1
- package/docs/private-mcp-fleet-risk-graph.md +69 -0
- package/docs/receipt-graph.md +118 -31
- package/docs/safety-index/artifacts/chrome-devtools-mcp-server.json +1745 -0
- package/docs/safety-index/artifacts/chrome-devtools-mcp-server.md +169 -0
- package/docs/safety-index/artifacts/filesystem-mcp-server.json +786 -0
- package/docs/safety-index/artifacts/filesystem-mcp-server.md +169 -0
- package/docs/safety-index/artifacts/github-mcp-server.json +1707 -0
- package/docs/safety-index/artifacts/github-mcp-server.md +169 -0
- package/docs/safety-index/mcp-risk-graph.html +167 -0
- package/docs/safety-index/mcp-risk-graph.json +669 -0
- package/docs/safety-index/mcp-risk-graph.md +47 -0
- package/docs/safety-index/targets.json +57 -0
- package/docs/sample-private-fleet-risk-graph.md +90 -0
- package/package.json +21 -11
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# MCP Risk Graph
|
|
2
|
+
|
|
3
|
+
MCP Observatory maps the risk graph of agent toolchains before agents depend on them.
|
|
4
|
+
|
|
5
|
+
This graph is evidence-based and safe-mode only. It links MCP servers to receipts, attack-sim output, capability boundaries, recommended actions, and CI/SARIF next steps.
|
|
6
|
+
|
|
7
|
+
## Summary
|
|
8
|
+
|
|
9
|
+
- Servers: 15
|
|
10
|
+
- Capability boundaries: 5
|
|
11
|
+
- Highest risk: high
|
|
12
|
+
- Generated at: 2026-07-06T22:47:17.078Z
|
|
13
|
+
|
|
14
|
+
## Servers
|
|
15
|
+
|
|
16
|
+
| Server | Boundary | Risk | Action | Receipt | CI command | Evidence |
|
|
17
|
+
| --- | --- | --- | --- | --- | --- | --- |
|
|
18
|
+
| @cyanheads/git-mcp-server | filesystem | medium | gate | not_generated | mcp-observatory setup-ci --all --command "npx -y @cyanheads/git-mcp-server" --sarif --schedule weekly | run-artifact:docs/safety-index/artifacts/cyanheads-git-mcp-server.json<br>attack-sim:docs/safety-index/artifacts/cyanheads-git-mcp-server.json |
|
|
19
|
+
| Browser MCP | browser | low | allow | not_generated | mcp-observatory setup-ci --all --command "npx -y @browsermcp/mcp" --sarif --schedule weekly | run-artifact:docs/safety-index/artifacts/browsermcp-server.json<br>attack-sim:docs/safety-index/artifacts/browsermcp-server.json |
|
|
20
|
+
| Context7 | unknown | medium | gate | not_generated | mcp-observatory setup-ci --all --command "npx -y @upstash/context7-mcp" --sarif --schedule weekly | run-artifact:docs/safety-index/artifacts/context7-server.json<br>attack-sim:docs/safety-index/artifacts/context7-server.json |
|
|
21
|
+
| example-servers/puppeteer | browser | high | quarantine | not_generated | mcp-observatory setup-ci --all --command "npx -y puppeteer-mcp-server" --sarif --schedule weekly | run-artifact:docs/safety-index/artifacts/puppeteer-server.json<br>attack-sim:docs/safety-index/artifacts/puppeteer-server.json |
|
|
22
|
+
| kubernetes | infra-cloud | high | quarantine | not_generated | mcp-observatory setup-ci --all --command "npx -y mcp-server-kubernetes" --sarif --schedule weekly | run-artifact:docs/safety-index/artifacts/kubernetes-server.attack.json<br>attack-sim:docs/safety-index/artifacts/kubernetes-server.attack.json<br>run-artifact:docs/safety-index/artifacts/kubernetes-server.json<br>attack-sim:docs/safety-index/artifacts/kubernetes-server.json |
|
|
23
|
+
| mcp-server-chart | unknown | low | allow | not_generated | mcp-observatory setup-ci --all --command "npx -y @antv/mcp-server-chart" --sarif --schedule weekly | run-artifact:docs/safety-index/artifacts/antv-chart-server.json<br>attack-sim:docs/safety-index/artifacts/antv-chart-server.json |
|
|
24
|
+
| mcp-servers/everything | filesystem | low | allow | not_generated | mcp-observatory setup-ci --all --command "npx -y @modelcontextprotocol/server-everything" --sarif --schedule weekly | run-artifact:docs/safety-index/artifacts/everything-server.json<br>attack-sim:docs/safety-index/artifacts/everything-server.json |
|
|
25
|
+
| memory-server | memory | low | allow | not_generated | mcp-observatory setup-ci --all --command "npx -y @modelcontextprotocol/server-memory" --sarif --schedule weekly | run-artifact:docs/safety-index/artifacts/memory-server.json<br>attack-sim:docs/safety-index/artifacts/memory-server.json |
|
|
26
|
+
| opentofu | infra-cloud | medium | gate | not_generated | mcp-observatory setup-ci --all --command "npx -y @opentofu/opentofu-mcp-server" --sarif --schedule weekly | run-artifact:docs/safety-index/artifacts/opentofu-server.json<br>attack-sim:docs/safety-index/artifacts/opentofu-server.json |
|
|
27
|
+
| Playwright | browser | high | quarantine | not_generated | mcp-observatory setup-ci --all --command "npx -y @playwright/mcp" --sarif --schedule weekly | run-artifact:docs/safety-index/artifacts/playwright-mcp-server.json<br>attack-sim:docs/safety-index/artifacts/playwright-mcp-server.json |
|
|
28
|
+
| playwright-mcp | browser | high | quarantine | not_generated | mcp-observatory setup-ci --all --command "npx -y @executeautomation/playwright-mcp-server" --sarif --schedule weekly | run-artifact:docs/safety-index/artifacts/executeautomation-playwright-server.json<br>attack-sim:docs/safety-index/artifacts/executeautomation-playwright-server.json |
|
|
29
|
+
| promptopia-mcp | filesystem | low | allow | not_generated | mcp-observatory setup-ci --all --command "npx -y promptopia-mcp" --sarif --schedule weekly | run-artifact:docs/safety-index/artifacts/promptopia-server.json<br>attack-sim:docs/safety-index/artifacts/promptopia-server.json |
|
|
30
|
+
| Ref | unknown | low | allow | not_generated | mcp-observatory setup-ci --all --command "npx -y ref-tools-mcp" --sarif --schedule weekly | run-artifact:docs/safety-index/artifacts/ref-tools-server.json<br>attack-sim:docs/safety-index/artifacts/ref-tools-server.json |
|
|
31
|
+
| secure-filesystem-server | filesystem | medium | gate | not_generated | mcp-observatory setup-ci --all --command "npx -y @modelcontextprotocol/server-filesystem examples/filesystem-fixture" --sarif --schedule weekly | run-artifact:docs/safety-index/artifacts/filesystem-server.json<br>attack-sim:docs/safety-index/artifacts/filesystem-server.json |
|
|
32
|
+
| sequential-thinking-server | unknown | low | allow | not_generated | mcp-observatory setup-ci --all --command "npx -y @modelcontextprotocol/server-sequential-thinking" --sarif --schedule weekly | run-artifact:docs/safety-index/artifacts/sequential-thinking-server.json<br>attack-sim:docs/safety-index/artifacts/sequential-thinking-server.json |
|
|
33
|
+
|
|
34
|
+
## Recommended Actions
|
|
35
|
+
|
|
36
|
+
- @cyanheads/git-mcp-server: Gate adoption until maintainers review the finding.
|
|
37
|
+
- Context7: Gate adoption until maintainers review the finding.
|
|
38
|
+
- opentofu: Gate adoption until maintainers review the finding.
|
|
39
|
+
- secure-filesystem-server: Gate adoption until maintainers review the finding.
|
|
40
|
+
- example-servers/puppeteer: Quarantine from production agents until the boundary is reduced or accepted.
|
|
41
|
+
- kubernetes: Quarantine from production agents until the boundary is reduced or accepted.
|
|
42
|
+
- Playwright: Quarantine from production agents until the boundary is reduced or accepted.
|
|
43
|
+
- playwright-mcp: Quarantine from production agents until the boundary is reduced or accepted.
|
|
44
|
+
|
|
45
|
+
## Maintainer Note Template
|
|
46
|
+
|
|
47
|
+
We generated a safe MCP Observatory receipt for your MCP server. It includes the exact evidence artifact, recommended action, and CI/SARIF command. If this startup command is not the safest public mode, reply with the preferred no-secret command and we will update the receipt.
|
|
@@ -69,6 +69,29 @@
|
|
|
69
69
|
"whyItMatters": "Filesystem tools need harmless test roots and clear read/write boundaries.",
|
|
70
70
|
"reproductionNotes": "Runs against the checked-in harmless fixture directory."
|
|
71
71
|
},
|
|
72
|
+
{
|
|
73
|
+
"id": "filesystem-mcp-server",
|
|
74
|
+
"name": "Filesystem MCP server",
|
|
75
|
+
"repo": "https://github.com/modelcontextprotocol/servers",
|
|
76
|
+
"packageName": "@modelcontextprotocol/server-filesystem",
|
|
77
|
+
"category": "Filesystem",
|
|
78
|
+
"command": "npx",
|
|
79
|
+
"args": [
|
|
80
|
+
"-y",
|
|
81
|
+
"@modelcontextprotocol/server-filesystem",
|
|
82
|
+
"<safe-empty-temp-dir>"
|
|
83
|
+
],
|
|
84
|
+
"tempDirArg": {
|
|
85
|
+
"index": 2,
|
|
86
|
+
"prefix": "mcp-observatory-filesystem-safety-index",
|
|
87
|
+
"placeholder": "<safe-empty-temp-dir>"
|
|
88
|
+
},
|
|
89
|
+
"timeoutMs": 30000,
|
|
90
|
+
"riskClass": "Filesystem boundary",
|
|
91
|
+
"failureClass": "Temporary directory filesystem access",
|
|
92
|
+
"whyItMatters": "Filesystem MCP is a core agent trust boundary because it exposes read, write, edit, delete, and directory traversal tools.",
|
|
93
|
+
"reproductionNotes": "Safety Index generation creates an empty temporary directory for the server root and sanitizes that path from public artifacts."
|
|
94
|
+
},
|
|
72
95
|
{
|
|
73
96
|
"id": "context7-server",
|
|
74
97
|
"name": "Context7",
|
|
@@ -140,6 +163,23 @@
|
|
|
140
163
|
"whyItMatters": "Coding agents often need Git context and can cause real repository changes if tool boundaries are unclear.",
|
|
141
164
|
"reproductionNotes": "Zero-config public package. Keep tool invocation read-only unless a harmless fixture repository is added."
|
|
142
165
|
},
|
|
166
|
+
{
|
|
167
|
+
"id": "github-mcp-server",
|
|
168
|
+
"name": "Official GitHub MCP server",
|
|
169
|
+
"repo": "https://github.com/modelcontextprotocol/servers",
|
|
170
|
+
"packageName": "@modelcontextprotocol/server-github",
|
|
171
|
+
"category": "Developer Tools",
|
|
172
|
+
"command": "npx",
|
|
173
|
+
"args": [
|
|
174
|
+
"-y",
|
|
175
|
+
"@modelcontextprotocol/server-github"
|
|
176
|
+
],
|
|
177
|
+
"timeoutMs": 60000,
|
|
178
|
+
"riskClass": "Repository mutation and PR control",
|
|
179
|
+
"failureClass": "Write/merge tool boundary",
|
|
180
|
+
"whyItMatters": "Exposes 26 tools to agents, including file writes, branch creation, issue/PR creation, and PR merges across any repo a token can reach — high-stakes write access that needs a visible boundary before an agent is trusted with it.",
|
|
181
|
+
"reproductionNotes": "Zero-config package; tool listing succeeds without a real GitHub token, so this check is safe to run in CI. Note: npm currently flags this package as deprecated/no longer supported by the publisher — treat this target as compatibility evidence, not an endorsement of the package's maintenance status."
|
|
182
|
+
},
|
|
143
183
|
{
|
|
144
184
|
"id": "opentofu-server",
|
|
145
185
|
"name": "OpenTofu MCP server",
|
|
@@ -264,5 +304,22 @@
|
|
|
264
304
|
"failureClass": "Command and cluster mutation boundary",
|
|
265
305
|
"whyItMatters": "Kubernetes MCP servers can expose cluster mutation, pod exec, manifest apply/delete, and broad kubectl command surfaces to agents.",
|
|
266
306
|
"reproductionNotes": "Zero-config public package. Evaluated without cluster credentials; findings are metadata and schema boundary prompts, not exploit claims."
|
|
307
|
+
},
|
|
308
|
+
{
|
|
309
|
+
"id": "chrome-devtools-mcp-server",
|
|
310
|
+
"name": "Chrome DevTools MCP",
|
|
311
|
+
"repo": "https://github.com/ChromeDevTools/chrome-devtools-mcp",
|
|
312
|
+
"packageName": "chrome-devtools-mcp",
|
|
313
|
+
"category": "Browser Automation",
|
|
314
|
+
"command": "npx",
|
|
315
|
+
"args": [
|
|
316
|
+
"-y",
|
|
317
|
+
"chrome-devtools-mcp"
|
|
318
|
+
],
|
|
319
|
+
"timeoutMs": 60000,
|
|
320
|
+
"riskClass": "Browser control",
|
|
321
|
+
"failureClass": "Browser/code execution boundary",
|
|
322
|
+
"whyItMatters": "Coding agents may use Chrome DevTools MCP to inspect pages, network state, console output, and browser behavior before making changes.",
|
|
323
|
+
"reproductionNotes": "Zero-config public package; browser-control findings should be treated as policy-review prompts, not vulnerability claims."
|
|
267
324
|
}
|
|
268
325
|
]
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
# Sample Private Fleet Risk Graph
|
|
2
|
+
|
|
3
|
+
This is a sanitized example deliverable for a private MCP fleet risk graph pilot. It shows the shape of the buyer artifact without exposing customer telemetry, hostnames, emails, internal repo names, raw command output, secrets, or proprietary scoring weights.
|
|
4
|
+
|
|
5
|
+
## Executive Verdict
|
|
6
|
+
|
|
7
|
+
The reviewed fleet is usable with controls, but not yet ready for unrestricted production agent access.
|
|
8
|
+
|
|
9
|
+
Recommended decision: `gate`
|
|
10
|
+
|
|
11
|
+
Why:
|
|
12
|
+
|
|
13
|
+
- browser and command-execution MCP servers create high-impact permission boundaries
|
|
14
|
+
- CI/SARIF coverage is incomplete
|
|
15
|
+
- several dependencies lack portable receipts or maintainer-owned safe startup commands
|
|
16
|
+
- no destructive probes were run; evidence is safe-mode only
|
|
17
|
+
|
|
18
|
+
## Fleet Graph Summary
|
|
19
|
+
|
|
20
|
+
| Boundary | Dependencies | Highest risk | Recommended action |
|
|
21
|
+
| --- | ---: | --- | --- |
|
|
22
|
+
| Browser | 4 | high | `gate` |
|
|
23
|
+
| Command execution | 3 | high | `gate` |
|
|
24
|
+
| Infrastructure/cloud | 2 | high | `gate` |
|
|
25
|
+
| Memory | 2 | medium | `gate` |
|
|
26
|
+
| Data/API | 7 | medium | `gate` |
|
|
27
|
+
| Filesystem | 3 | medium | `gate` |
|
|
28
|
+
| Identity/auth | 1 | medium | `gate` |
|
|
29
|
+
|
|
30
|
+
## Top Risky MCP Dependencies
|
|
31
|
+
|
|
32
|
+
| Dependency | Boundary | Evidence | Risk | Owner action |
|
|
33
|
+
| --- | --- | --- | --- | --- |
|
|
34
|
+
| Browser automation server | Browser | Receipt + attack-sim + SARIF | high | Add CI/SARIF and restrict production profile. |
|
|
35
|
+
| Shell helper server | Command execution | Receipt + schema drift finding | high | Require explicit allowlist and owner review. |
|
|
36
|
+
| Cloud deployment server | Infrastructure/cloud | Receipt only | high | Add attack-sim evidence and fixture startup mode. |
|
|
37
|
+
| Memory server | Memory | Receipt + drift comparison | medium | Add weekly lock verification. |
|
|
38
|
+
| Internal docs server | Data/API | Partial receipt | medium | Provide safe startup command and rerun receipt. |
|
|
39
|
+
|
|
40
|
+
## CI Adoption Status
|
|
41
|
+
|
|
42
|
+
| State | Count | Meaning |
|
|
43
|
+
| --- | ---: | --- |
|
|
44
|
+
| CI/SARIF active | 5 | Findings upload to GitHub Code Scanning or equivalent. |
|
|
45
|
+
| CI present, no SARIF | 4 | Compatibility checks run, but security findings are not visible in code scanning. |
|
|
46
|
+
| Receipt only | 6 | Evidence exists but is not yet enforced. |
|
|
47
|
+
| No receipt | 7 | Dependency needs safe startup discovery before approval. |
|
|
48
|
+
|
|
49
|
+
Recommended default:
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
npx @kryptosai/mcp-observatory setup-ci --all --command "<safe startup command>" --sarif --schedule weekly
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## Owner-Ready Remediation List
|
|
56
|
+
|
|
57
|
+
1. Add CI/SARIF for high-capability browser, command, and infrastructure MCP servers.
|
|
58
|
+
2. Require safe startup commands for every production MCP dependency.
|
|
59
|
+
3. Generate receipts for all servers in the private fleet graph.
|
|
60
|
+
4. Run safe `attack-sim` for high and medium dependencies.
|
|
61
|
+
5. Add weekly drift checks for schemas, tool descriptions, and required fields.
|
|
62
|
+
6. Route `gate`, `quarantine`, and `escalate` receipts to owner review before agent rollout.
|
|
63
|
+
|
|
64
|
+
## Procurement/Security Appendix
|
|
65
|
+
|
|
66
|
+
Safe-mode guarantee:
|
|
67
|
+
|
|
68
|
+
- no destructive tool calls
|
|
69
|
+
- no credential probing
|
|
70
|
+
- no external callback infrastructure
|
|
71
|
+
- no production data exfiltration
|
|
72
|
+
- no mutation of customer repos without explicit approval
|
|
73
|
+
|
|
74
|
+
Evidence package:
|
|
75
|
+
|
|
76
|
+
- JSON risk graph
|
|
77
|
+
- Markdown and HTML executive graph
|
|
78
|
+
- run artifacts
|
|
79
|
+
- receipt artifacts
|
|
80
|
+
- SARIF outputs where applicable
|
|
81
|
+
- reproduction commands
|
|
82
|
+
- CI/SARIF setup commands
|
|
83
|
+
- limitations and owner notes
|
|
84
|
+
|
|
85
|
+
Commercial boundary:
|
|
86
|
+
|
|
87
|
+
- raw telemetry, customer identifiers, internal repo names, hostnames, and private command outputs stay private
|
|
88
|
+
- public artifacts are sanitized and published only with approval
|
|
89
|
+
- commercial scoring weights and lead/account intelligence are not included in the OSS repo
|
|
90
|
+
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kryptosai/mcp-observatory",
|
|
3
|
-
"version": "1.28.
|
|
3
|
+
"version": "1.28.3",
|
|
4
4
|
"description": "GitHub-native CI, SARIF, Code Scanning, and security gates for MCP servers before agents depend on them.",
|
|
5
5
|
"mcpName": "io.github.KryptosAI/mcp-observatory",
|
|
6
6
|
"license": "MIT",
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"homepage": "https://github.com/KryptosAI/mcp-observatory#readme",
|
|
10
10
|
"repository": {
|
|
11
11
|
"type": "git",
|
|
12
|
-
"url": "
|
|
12
|
+
"url": "https://github.com/KryptosAI/mcp-observatory.git"
|
|
13
13
|
},
|
|
14
14
|
"bugs": {
|
|
15
15
|
"url": "https://github.com/KryptosAI/mcp-observatory/issues"
|
|
@@ -23,7 +23,11 @@
|
|
|
23
23
|
"main": "./dist/src/index.js",
|
|
24
24
|
"types": "./dist/src/index.d.ts",
|
|
25
25
|
"exports": {
|
|
26
|
-
".":
|
|
26
|
+
".": {
|
|
27
|
+
"types": "./dist/src/index.d.ts",
|
|
28
|
+
"default": "./dist/src/index.js"
|
|
29
|
+
},
|
|
30
|
+
"./package.json": "./package.json"
|
|
27
31
|
},
|
|
28
32
|
"bin": {
|
|
29
33
|
"mcp-observatory": "./dist/src/cli.js"
|
|
@@ -72,9 +76,11 @@
|
|
|
72
76
|
"docs/openclaw-agent-template",
|
|
73
77
|
"docs/proof.md",
|
|
74
78
|
"docs/procurement-one-pager.md",
|
|
79
|
+
"docs/private-mcp-fleet-risk-graph.md",
|
|
75
80
|
"docs/public-guidance-crosswalk.md",
|
|
76
81
|
"docs/receipt-graph.md",
|
|
77
82
|
"docs/reference-evaluations.md",
|
|
83
|
+
"docs/sample-private-fleet-risk-graph.md",
|
|
78
84
|
"docs/safety-index",
|
|
79
85
|
"docs/setup-ci-doctor.md",
|
|
80
86
|
"docs/security-due-diligence.md",
|
|
@@ -148,7 +154,11 @@
|
|
|
148
154
|
"feishu",
|
|
149
155
|
"lark",
|
|
150
156
|
"schema-drift",
|
|
151
|
-
"attack-simulation"
|
|
157
|
+
"attack-simulation",
|
|
158
|
+
"mcp-observability",
|
|
159
|
+
"security-scanner",
|
|
160
|
+
"mcp-server-testing",
|
|
161
|
+
"tool-call-audit"
|
|
152
162
|
],
|
|
153
163
|
"dependencies": {
|
|
154
164
|
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
@@ -159,16 +169,16 @@
|
|
|
159
169
|
},
|
|
160
170
|
"devDependencies": {
|
|
161
171
|
"@eslint/js": "10.0.1",
|
|
162
|
-
"@types/node": "26.0
|
|
163
|
-
"@typescript-eslint/eslint-plugin": "8.
|
|
164
|
-
"@typescript-eslint/parser": "8.
|
|
172
|
+
"@types/node": "26.1.0",
|
|
173
|
+
"@typescript-eslint/eslint-plugin": "8.63.0",
|
|
174
|
+
"@typescript-eslint/parser": "8.63.0",
|
|
165
175
|
"ajv": "8.20.0",
|
|
166
176
|
"eslint": "10.6.0",
|
|
167
177
|
"globals": "17.7.0",
|
|
168
|
-
"tsx": "4.
|
|
169
|
-
"@vitest/coverage-v8": "4.1.
|
|
178
|
+
"tsx": "4.23.0",
|
|
179
|
+
"@vitest/coverage-v8": "4.1.10",
|
|
170
180
|
"typescript": "6.0.3",
|
|
171
|
-
"typescript-eslint": "8.
|
|
172
|
-
"vitest": "4.1.
|
|
181
|
+
"typescript-eslint": "8.63.0",
|
|
182
|
+
"vitest": "4.1.10"
|
|
173
183
|
}
|
|
174
184
|
}
|