@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
package/CONTRIBUTORS.md
CHANGED
|
@@ -7,7 +7,7 @@ Official GitHub profile achievements are platform-controlled; this project does
|
|
|
7
7
|
See the full recognition path in [MCP Observatory Contributors](./docs/contributor-recognition.md).
|
|
8
8
|
|
|
9
9
|
<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
|
|
10
|
-
[](#contributors-)
|
|
11
11
|
<!-- ALL-CONTRIBUTORS-BADGE:END -->
|
|
12
12
|
|
|
13
13
|
## Contributors
|
|
@@ -19,6 +19,9 @@ See the full recognition path in [MCP Observatory Contributors](./docs/contribut
|
|
|
19
19
|
<tbody>
|
|
20
20
|
<tr>
|
|
21
21
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/KryptosAI"><img src="https://avatars.githubusercontent.com/u/140749029?s=100" width="100px;" alt="William Weishuhn"/><br /><sub><b>William Weishuhn</b></sub></a><br /><a href="https://github.com/KryptosAI/mcp-observatory/commits?author=KryptosAI" title="Code">💻</a> <a href="https://github.com/KryptosAI/mcp-observatory/commits?author=KryptosAI" title="Documentation">📖</a> <a href="#ideas-KryptosAI" title="Ideas, Planning, & Feedback">🤔</a> <a href="#maintenance-KryptosAI" title="Maintenance">🚧</a> <a href="https://github.com/KryptosAI/mcp-observatory/commits?author=KryptosAI" title="Tests">⚠️</a></td>
|
|
22
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/leemeo3"><img src="https://avatars.githubusercontent.com/u/leemeo3?s=100" width="100px;" alt="Lee Sang Hoon"/><br /><sub><b>Lee Sang Hoon</b></sub></a><br /><a href="https://github.com/KryptosAI/mcp-observatory/commits?author=leemeo3" title="Code">💻</a> <a href="https://github.com/KryptosAI/mcp-observatory/commits?author=leemeo3" title="Documentation">📖</a> <a href="https://github.com/KryptosAI/mcp-observatory/commits?author=leemeo3" title="Tests">⚠️</a> <a href="#infra-leemeo3" title="Infrastructure (Hosting, Build-Tools, etc)">🏗</a></td>
|
|
23
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/sansynx"><img src="https://avatars.githubusercontent.com/u/sansynx?s=100" width="100px;" alt="Sanath"/><br /><sub><b>Sanath</b></sub></a><br /><a href="https://github.com/KryptosAI/mcp-observatory/commits?author=sansynx" title="Code">💻</a> <a href="https://github.com/KryptosAI/mcp-observatory/commits?author=sansynx" title="Tests">⚠️</a></td>
|
|
24
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/tanishxdev"><img src="https://avatars.githubusercontent.com/u/117829203?s=100" width="100px;" alt="Tanish Kumar"/><br /><sub><b>Tanish Kumar</b></sub></a><br /><a href="https://github.com/KryptosAI/mcp-observatory/commits?author=tanishxdev" title="Code">💻</a></td>
|
|
22
25
|
</tr>
|
|
23
26
|
</tbody>
|
|
24
27
|
</table>
|
package/README.md
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
> 🇨🇳 中文文档: [README.zh-CN.md](README.zh-CN.md) | 欢迎中国开发者贡献!
|
|
2
|
+
|
|
1
3
|
# MCP Observatory
|
|
2
4
|
|
|
3
5
|
```
|
|
@@ -12,22 +14,40 @@
|
|
|
12
14
|
|
|
13
15
|
[](https://github.com/KryptosAI/mcp-observatory/actions/workflows/ci.yml)
|
|
14
16
|
[](https://github.com/KryptosAI/mcp-observatory/actions/workflows/codeql.yml)
|
|
15
|
-
[](https://github.com/KryptosAI/mcp-observatory/actions/workflows/coverage.yml)
|
|
17
|
+
[](https://github.com/KryptosAI/mcp-observatory/actions/workflows/coverage.yml)
|
|
18
|
+
[](https://www.npmjs.com/package/@kryptosai/mcp-observatory)
|
|
19
|
+
[](https://github.com/KryptosAI/mcp-observatory/stargazers)
|
|
20
|
+
[](./LICENSE)
|
|
21
|
+
|
|
22
|
+
<details>
|
|
23
|
+
<summary>More badges</summary>
|
|
24
|
+
|
|
16
25
|
[](https://securityscorecards.dev/viewer/?uri=github.com/KryptosAI/mcp-observatory)
|
|
17
26
|
[](./.github/dependabot.yml)
|
|
18
27
|
[](./.github/workflows/release.yml)
|
|
19
|
-
[](https://www.npmjs.com/package/@kryptosai/mcp-observatory)
|
|
20
28
|
[](https://www.npmjs.com/package/@kryptosai/mcp-observatory)
|
|
21
|
-
[](https://github.com/KryptosAI/mcp-observatory/stargazers)
|
|
22
|
-
[](./LICENSE)
|
|
23
29
|
[](./package.json)
|
|
24
30
|
[](https://smithery.ai/server/@kryptosai/mcp-observatory)
|
|
25
31
|
[](https://glama.ai/mcp/servers/KryptosAI/mcp-observatory)
|
|
26
|
-
[](./CONTRIBUTORS.md)
|
|
33
|
+
[](https://gitee.com/williamweishuhn/mcp-observatory)
|
|
34
|
+
[](https://gitee.com/williamweishuhn/mcp-observatory)
|
|
35
|
+
[](https://registry.modelcontextprotocol.io)
|
|
36
|
+
[](https://mcpmarket.com)
|
|
37
|
+
[](https://mcp-hub.cn)
|
|
38
|
+
[](https://opentools.ai)
|
|
39
|
+
[](https://gitee.com/williamweishuhn/mcp-observatory)
|
|
40
|
+
|
|
41
|
+
</details>
|
|
27
42
|
|
|
28
|
-
**MCP Observatory
|
|
43
|
+
**MCP Observatory maps the risk graph of agent toolchains before agents depend on them.** It helps teams validate MCP servers before deployment into sensitive, regulated, or mission-critical agentic AI environments.
|
|
29
44
|
|
|
30
|
-
|
|
45
|
+
<p align="center">
|
|
46
|
+
<img src="docs/demo.gif" alt="MCP Observatory demo" width="700"/>
|
|
47
|
+
</p>
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
Agents should not depend on tools nobody tests. MCP Observatory turns a local MCP check into portable receipts, risk graphs, release-gate evidence, SARIF for GitHub Code Scanning, GitHub Actions gates, schema drift detection, trust status output, score badges, and agent-accessible diagnostics.
|
|
31
51
|
|
|
32
52
|
```bash
|
|
33
53
|
npx @kryptosai/mcp-observatory audit npx -y my-mcp-server --profile nsa-mcp --format markdown --output mcp-audit.md
|
|
@@ -59,7 +79,7 @@ The `nsa-mcp` profile is not an official certification. It maps MCP Observatory
|
|
|
59
79
|
|
|
60
80
|
## Try It
|
|
61
81
|
|
|
62
|
-
Run a
|
|
82
|
+
Run the public evidence loop: generate a receipt, map it into a risk graph, add CI/SARIF, then request a private fleet review when the server matters to production.
|
|
63
83
|
|
|
64
84
|
```bash
|
|
65
85
|
npx @kryptosai/mcp-observatory audit npx -y my-mcp-server --profile nsa-mcp --format markdown --output report.md
|
|
@@ -78,6 +98,7 @@ Emit the portable trust record:
|
|
|
78
98
|
```bash
|
|
79
99
|
npx @kryptosai/mcp-observatory audit npx -y my-mcp-server --profile nsa-mcp --format json --output report.json --receipt receipt.json
|
|
80
100
|
npx @kryptosai/mcp-observatory receipt npx -y my-mcp-server --profile nsa-mcp --format markdown --output receipt.md
|
|
101
|
+
npx @kryptosai/mcp-observatory risk-graph --input receipt.json --json mcp-risk-graph.json --output mcp-risk-graph.md --html mcp-risk-graph.html
|
|
81
102
|
```
|
|
82
103
|
|
|
83
104
|
Then make the evidence repeatable in CI:
|
|
@@ -86,7 +107,7 @@ Then make the evidence repeatable in CI:
|
|
|
86
107
|
npx @kryptosai/mcp-observatory setup-ci --all --command "npx -y my-mcp-server" --sarif
|
|
87
108
|
```
|
|
88
109
|
|
|
89
|
-
See the [government and enterprise pilot brief](./docs/government-enterprise-pilot.md), [public guidance crosswalk](./docs/public-guidance-crosswalk.md), [procurement one-pager](./docs/procurement-one-pager.md), [security due diligence packet](./docs/security-due-diligence.md), [NSA-MCP audit CI guide](./docs/nsa-mcp-audit-ci.md), [example NSA-MCP audit report](./docs/examples/nsa-mcp-audit-report.md), [MCP Receipts](./docs/mcp-receipts.md), [MCP Attack Simulator](./docs/mcp-attack-simulator.md), [Tool-call receipts](./docs/tool-call-receipts.md), [MCP
|
|
110
|
+
See the [government and enterprise pilot brief](./docs/government-enterprise-pilot.md), [public guidance crosswalk](./docs/public-guidance-crosswalk.md), [procurement one-pager](./docs/procurement-one-pager.md), [security due diligence packet](./docs/security-due-diligence.md), [NSA-MCP audit CI guide](./docs/nsa-mcp-audit-ci.md), [example NSA-MCP audit report](./docs/examples/nsa-mcp-audit-report.md), [MCP Receipts](./docs/mcp-receipts.md), [MCP Attack Simulator](./docs/mcp-attack-simulator.md), [Tool-call receipts](./docs/tool-call-receipts.md), [MCP Risk Graph](./docs/receipt-graph.md), [private fleet risk graph pilot](./docs/private-mcp-fleet-risk-graph.md), [launch page](./docs/launch.md), [GitHub Code Scanning demo](./docs/code-scanning-demo.md), [GitHub Code Scanning for MCP servers](./docs/github-code-scanning-for-mcp.md), [sample safety reports](./docs/mcp-server-safety-index.md), and [reference evaluations](./docs/reference-evaluations.md).
|
|
90
111
|
|
|
91
112
|
Want a receipt for a server your agent depends on? Comment on [Drop an MCP server, get a receipt #146](https://github.com/KryptosAI/mcp-observatory/issues/146) or use the [structured receipt request form](https://github.com/KryptosAI/mcp-observatory/issues/new?template=tool-call-receipt-request.yml). Public requests can become Safety Index entries, delta receipts, SARIF evidence, and maintainer CI conversations.
|
|
92
113
|
|
|
@@ -100,7 +121,7 @@ Want a receipt for a server your agent depends on? Comment on [Drop an MCP serve
|
|
|
100
121
|
| Attack simulation output | [MCP Attack Simulator](./docs/mcp-attack-simulator.md) |
|
|
101
122
|
| MCP receipts | [Portable trust receipts](./docs/mcp-receipts.md) |
|
|
102
123
|
| Tool-call receipts | [Receipt standard](./docs/tool-call-receipts.md) for reproducible MCP evidence |
|
|
103
|
-
|
|
|
124
|
+
| Risk graph | [Server-to-evidence map](./docs/receipt-graph.md) for agent toolchain trust decisions |
|
|
104
125
|
| SARIF / Code Scanning output | [GitHub Code Scanning demo](./docs/code-scanning-demo.md) |
|
|
105
126
|
| Real MCP server evaluations | [MCP Server Safety Index](./docs/mcp-server-safety-index.md) |
|
|
106
127
|
| Reference reports | [Reference evaluations](./docs/reference-evaluations.md) |
|
|
@@ -169,6 +190,7 @@ Observatory gives maintainers and teams:
|
|
|
169
190
|
- **One-command CI setup** with `setup-ci --all`
|
|
170
191
|
- **Profile-mapped audits** with `audit --profile nsa-mcp`
|
|
171
192
|
- **MCP receipts** that package target, evidence, verdict, action, and reproduction commands
|
|
193
|
+
- **MCP risk graphs** that group servers by capability boundary, receipt state, CI posture, and recommended action
|
|
172
194
|
- **Action receipts** that say `allow`, `gate`, `rerun`, `quarantine`, or `escalate`
|
|
173
195
|
- **GitHub PR comments** for compatibility, drift, and security findings
|
|
174
196
|
- **GitHub Code Scanning SARIF** for normalized MCP findings
|
|
@@ -177,7 +199,7 @@ Observatory gives maintainers and teams:
|
|
|
177
199
|
- **MCP server mode** so agents can inspect other MCP servers directly
|
|
178
200
|
- **Production support path** for hosted history, private repo reporting, certification, support, and fleet visibility
|
|
179
201
|
|
|
180
|
-
See the [launch page](./docs/launch.md), [GitHub Code Scanning for MCP servers](./docs/github-code-scanning-for-mcp.md), [Code Scanning demo](./docs/code-scanning-demo.md), [target gallery](./docs/target-gallery.md), [target registry](./docs/target-registry.md), [target contribution guide](./docs/target-contribution-guide.md), [MCP Observatory Contributors](./docs/contributor-recognition.md), [Agent Task Pack](./docs/agent-tasks.md), [MCP Receipts](./docs/mcp-receipts.md), [Tool-call receipts](./docs/tool-call-receipts.md), [MCP
|
|
202
|
+
See the [launch page](./docs/launch.md), [GitHub Code Scanning for MCP servers](./docs/github-code-scanning-for-mcp.md), [Code Scanning demo](./docs/code-scanning-demo.md), [target gallery](./docs/target-gallery.md), [target registry](./docs/target-registry.md), [target contribution guide](./docs/target-contribution-guide.md), [MCP Observatory Contributors](./docs/contributor-recognition.md), [Agent Task Pack](./docs/agent-tasks.md), [MCP Receipts](./docs/mcp-receipts.md), [Tool-call receipts](./docs/tool-call-receipts.md), [MCP Risk Graph](./docs/receipt-graph.md), [`setup-ci --doctor`](./docs/setup-ci-doctor.md), [MCP server security field guide](./docs/mcp-security-field-guide.md), [Safety Methodology](./docs/methodology.md), [MCP Server Safety Index](./docs/mcp-server-safety-index.md), [June 2026 safety field report](./docs/mcp-safety-field-report-2026-06.md), [reference evaluations](./docs/reference-evaluations.md), [MCP lock files](./docs/mcp-lock-files.md), [public proof](./docs/proof.md), [campaign attribution](./docs/campaign-attribution.md), [local metrics dashboard](./docs/metrics-dashboard.md), [open core boundary](./docs/commercial-boundary.md), [MCP Attack Simulation Evidence Pack](./docs/attack-simulation-pilot.md), [Private MCP Fleet Risk Graph](./docs/private-mcp-fleet-risk-graph.md), and [commercial support](./COMMERCIAL.md).
|
|
181
203
|
|
|
182
204
|
## For Security And Platform Teams
|
|
183
205
|
|
|
@@ -187,12 +209,26 @@ MCP Observatory gives security and platform teams MCP server CI, schema drift de
|
|
|
187
209
|
|
|
188
210
|
## Production Support
|
|
189
211
|
|
|
190
|
-
Local OSS use stays free under MIT. Teams running MCP in production can use the [MCP Attack Simulation Evidence Pack](./docs/attack-simulation-pilot.md) for safe-mode attack simulation, SARIF/Code Scanning setup, CI rollout, private evidence reporting, and owner-ready remediation notes.
|
|
212
|
+
Local OSS use stays free under MIT. Teams running MCP in production can use the [Private MCP Fleet Risk Graph](./docs/private-mcp-fleet-risk-graph.md) and [MCP Attack Simulation Evidence Pack](./docs/attack-simulation-pilot.md) for safe-mode attack simulation, SARIF/Code Scanning setup, CI rollout, private evidence reporting, and owner-ready remediation notes. Private fleet risk graph pilots start at `$50,000`; attack simulation packages start at `$15,000`; narrow readiness reviews start at `$2,500`.
|
|
191
213
|
|
|
192
214
|
The open source repo is the public evidence engine. Private telemetry intelligence, company/account prioritization, commercial ranking weights, hosted fleet workflows, and buyer-specific evidence packs stay outside the OSS package; see the [open core boundary](./docs/commercial-boundary.md).
|
|
193
215
|
|
|
194
216
|
Run `npx @kryptosai/mcp-observatory cloud`, open a pilot request from the issue chooser, or see [COMMERCIAL.md](./COMMERCIAL.md). Also see [privacy and telemetry](./PRIVACY.md), [campaign attribution](./docs/campaign-attribution.md), and [terms for production use](./TERMS.md).
|
|
195
217
|
|
|
218
|
+
## How It Compares
|
|
219
|
+
|
|
220
|
+
| Feature | mcp-observatory | Snyk agent-scan | Cisco mcp-scanner | agent-shield |
|
|
221
|
+
|---|---|---|---|---|
|
|
222
|
+
| MCP-native | ✓ | ✓ | ✓ | ✓ |
|
|
223
|
+
| Attack simulation | ✓ | ✗ | ✗ | ✗ |
|
|
224
|
+
| Schema drift detection | ✓ | ✗ | ✗ | ✗ |
|
|
225
|
+
| Record/replay/verify | ✓ | ✗ | ✗ | ✗ |
|
|
226
|
+
| Health scoring (0-100) | ✓ | ✗ | ✗ | ✗ |
|
|
227
|
+
| SARIF output | ✓ | ✓ | ✓ | ✓ |
|
|
228
|
+
| CI/CD native (setup-ci) | ✓ | ✓ | ✓ | ✓ |
|
|
229
|
+
| Safety index (17+ servers) | ✓ | ✗ | ✗ | ✗ |
|
|
230
|
+
| Runtime enforcement via mcp-seatbelt | ✓ | ✗ | ✗ | ✗ |
|
|
231
|
+
|
|
196
232
|
## Quick Start
|
|
197
233
|
|
|
198
234
|
Scan every MCP server in your Claude config:
|
|
@@ -252,6 +288,7 @@ Or add it manually to your config:
|
|
|
252
288
|
| `setup-ci` / `init-ci` | Create a GitHub Action and badge snippet for MCP compatibility/security checks |
|
|
253
289
|
| `setup-ci --sarif` | Generate a workflow that uploads normalized findings to GitHub Code Scanning |
|
|
254
290
|
| `setup-ci --doctor` | Inspect whether the repository has a complete CI adoption kit |
|
|
291
|
+
| `risk-graph --input <path>` | Merge receipts and run artifacts into JSON, Markdown, and HTML MCP risk graphs |
|
|
255
292
|
| `--no-attack-sim` | Opt out of the default safe attack simulation on `scan` or `test` |
|
|
256
293
|
| `ci-report` | Generate CI report for GitHub issue creation |
|
|
257
294
|
| `enterprise-report` | Generate a static production/security report from run artifacts |
|
|
@@ -319,6 +356,42 @@ When you run `scan`, it looks for MCP configs in:
|
|
|
319
356
|
- `%APPDATA%/Claude/claude_desktop_config.json` (Claude Desktop, Windows)
|
|
320
357
|
- `.claude.json` and `.mcp.json` (current directory)
|
|
321
358
|
|
|
359
|
+
## Architecture
|
|
360
|
+
|
|
361
|
+
```
|
|
362
|
+
┌─────────────────────────┐
|
|
363
|
+
│ MCP Observatory CLI │
|
|
364
|
+
│ npx @kryptosai/mcp- │
|
|
365
|
+
│ observatory scan │
|
|
366
|
+
└───────────┬─────────────┘
|
|
367
|
+
│
|
|
368
|
+
┌───────────▼─────────────┐
|
|
369
|
+
│ Config Discovery │
|
|
370
|
+
│ (Claude, Cursor, etc.) │
|
|
371
|
+
└───────────┬─────────────┘
|
|
372
|
+
│
|
|
373
|
+
┌─────────────────┼─────────────────┐
|
|
374
|
+
▼ ▼ ▼
|
|
375
|
+
┌─────────────────┐ ┌──────────────┐ ┌──────────────────┐
|
|
376
|
+
│ Security Scan │ │ Attack Sim │ │ Schema Drift │
|
|
377
|
+
│ (shell, creds) │ │ (tool poison)│ │ (version diff) │
|
|
378
|
+
└────────┬────────┘ └──────┬───────┘ └────────┬─────────┘
|
|
379
|
+
│ │ │
|
|
380
|
+
└─────────────────┼───────────────────┘
|
|
381
|
+
▼
|
|
382
|
+
┌─────────────────────┐
|
|
383
|
+
│ Health Score │
|
|
384
|
+
│ (0-100 + verdict) │
|
|
385
|
+
└──────────┬──────────┘
|
|
386
|
+
│
|
|
387
|
+
┌────────────────┼────────────────┐
|
|
388
|
+
▼ ▼ ▼
|
|
389
|
+
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
|
|
390
|
+
│ SARIF │ │ Markdown │ │ CI Gateway │
|
|
391
|
+
│ (Code Scan) │ │ Report │ │ (setup-ci) │
|
|
392
|
+
└──────────────┘ └──────────────┘ └──────────────┘
|
|
393
|
+
```
|
|
394
|
+
|
|
322
395
|
## CI / GitHub Action
|
|
323
396
|
|
|
324
397
|
Add Observatory to your MCP server's CI pipeline:
|
|
@@ -539,7 +612,6 @@ Target configs support `${VAR}`, `$VAR`, and `env:VAR` references in `authToken`
|
|
|
539
612
|
| Response snapshot diffs | ✅ | — | — | — |
|
|
540
613
|
| Benchmarking / latency | — | — | ✅ | — |
|
|
541
614
|
| Jest integration | — | — | — | ✅ |
|
|
542
|
-
| MCP proxy mode | — | ✅ | — | — |
|
|
543
615
|
| **Works as MCP server** | **✅** | — | — | — |
|
|
544
616
|
|
|
545
617
|
Each tool has strengths. Observatory focuses on regression detection and CI-friendly workflows. mcp-recorder is great as a transparent proxy. MCPBench is the go-to for performance benchmarking. mcp-jest is ideal if you're already in a Jest workflow.
|
|
@@ -560,9 +632,32 @@ The record/replay/verify pattern is inspired by:
|
|
|
560
632
|
- Custom WebSocket transports (e.g., BrowserTools MCP) are not supported
|
|
561
633
|
- A few servers time out or close before init — see [known issues](./docs/known-issues.md) and [compatibility](./docs/compatibility.md)
|
|
562
634
|
|
|
635
|
+
## Works with mcp-seatbelt
|
|
636
|
+
|
|
637
|
+
Scan before you trust. Enforce at runtime with [mcp-seatbelt](https://github.com/KryptosAI/mcp-seatbelt) — an MCP proxy that consumes Observatory receipts and blocks out-of-contract tool calls in production. Observatory validates; seatbelt enforces.
|
|
638
|
+
|
|
639
|
+
## Contributors ✨
|
|
640
|
+
|
|
641
|
+
Thanks to these amazing people who have contributed:
|
|
642
|
+
|
|
643
|
+
- [leemeo3](https://github.com/leemeo3) — 3 Safety Index targets (Git, Chrome DevTools, Filesystem MCP)
|
|
644
|
+
- [albatrossflyon-coder](https://github.com/albatrossflyon-coder) — GitHub MCP Safety Index (#201)
|
|
645
|
+
- [tanishxdev](https://github.com/tanishxdev) — Legacy CLI deprecation warnings (#187)
|
|
646
|
+
- [sansynx](https://github.com/sansynx) — CLI format validation (#182)
|
|
647
|
+
|
|
648
|
+
[See all contributors →](CONTRIBUTORS.md)
|
|
649
|
+
|
|
563
650
|
## Contributing
|
|
564
651
|
|
|
565
|
-
|
|
652
|
+
We welcome contributors! This project follows a [Contributor Covenant Code of Conduct](./CODE_OF_CONDUCT.md). The fastest way to get involved:
|
|
653
|
+
|
|
654
|
+
[](https://github.com/KryptosAI/mcp-observatory/issues?q=is%3Aopen+label%3A%22good+first+issue%22)
|
|
655
|
+
|
|
656
|
+
```bash
|
|
657
|
+
git clone https://github.com/KryptosAI/mcp-observatory.git && cd mcp-observatory && npm install && npm test
|
|
658
|
+
```
|
|
659
|
+
|
|
660
|
+
The most common first contribution is adding an MCP server to the Safety Index (10-15 minutes). See [CONTRIBUTING.md](CONTRIBUTING.md) for full guidelines, code standards, and the contributor recognition ladder.
|
|
566
661
|
|
|
567
662
|
---
|
|
568
663
|
|