@kryptosai/mcp-observatory 1.28.1 โ†’ 1.29.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.
Files changed (100) hide show
  1. package/CONTRIBUTORS.md +2 -1
  2. package/README.md +24 -8
  3. package/README.zh-CN.md +587 -0
  4. package/dist/src/adapters/http.js +13 -4
  5. package/dist/src/adapters/http.js.map +1 -1
  6. package/dist/src/checks/security.js +33 -65
  7. package/dist/src/checks/security.js.map +1 -1
  8. package/dist/src/cli.js +9 -1
  9. package/dist/src/cli.js.map +1 -1
  10. package/dist/src/commands/helpers.d.ts +2 -1
  11. package/dist/src/commands/helpers.js +9 -1
  12. package/dist/src/commands/helpers.js.map +1 -1
  13. package/dist/src/commands/legacy.js +3 -0
  14. package/dist/src/commands/legacy.js.map +1 -1
  15. package/dist/src/commands/risk-graph.d.ts +2 -0
  16. package/dist/src/commands/risk-graph.js +64 -0
  17. package/dist/src/commands/risk-graph.js.map +1 -0
  18. package/dist/src/commands/score.js.map +1 -1
  19. package/dist/src/commands/watch.js +13 -8
  20. package/dist/src/commands/watch.js.map +1 -1
  21. package/dist/src/discovery.js +32 -26
  22. package/dist/src/discovery.js.map +1 -1
  23. package/dist/src/reporters/terminal.js +2 -1
  24. package/dist/src/reporters/terminal.js.map +1 -1
  25. package/dist/src/risk-graph.d.ts +64 -0
  26. package/dist/src/risk-graph.js +452 -0
  27. package/dist/src/risk-graph.js.map +1 -0
  28. package/dist/src/server.d.ts +1 -3
  29. package/dist/src/server.js +29 -645
  30. package/dist/src/server.js.map +1 -1
  31. package/dist/src/storage.js +13 -9
  32. package/dist/src/storage.js.map +1 -1
  33. package/dist/src/telemetry.d.ts +7 -0
  34. package/dist/src/telemetry.js.map +1 -1
  35. package/dist/src/tools/check-server.d.ts +27 -0
  36. package/dist/src/tools/check-server.js +46 -0
  37. package/dist/src/tools/check-server.js.map +1 -0
  38. package/dist/src/tools/ci-report.d.ts +21 -0
  39. package/dist/src/tools/ci-report.js +38 -0
  40. package/dist/src/tools/ci-report.js.map +1 -0
  41. package/dist/src/tools/diff-runs.d.ts +28 -0
  42. package/dist/src/tools/diff-runs.js +39 -0
  43. package/dist/src/tools/diff-runs.js.map +1 -0
  44. package/dist/src/tools/get-history.d.ts +21 -0
  45. package/dist/src/tools/get-history.js +37 -0
  46. package/dist/src/tools/get-history.js.map +1 -0
  47. package/dist/src/tools/get-last-run.d.ts +21 -0
  48. package/dist/src/tools/get-last-run.js +47 -0
  49. package/dist/src/tools/get-last-run.js.map +1 -0
  50. package/dist/src/tools/helpers.d.ts +8 -0
  51. package/dist/src/tools/helpers.js +32 -0
  52. package/dist/src/tools/helpers.js.map +1 -0
  53. package/dist/src/tools/lock-verify.d.ts +21 -0
  54. package/dist/src/tools/lock-verify.js +47 -0
  55. package/dist/src/tools/lock-verify.js.map +1 -0
  56. package/dist/src/tools/record.d.ts +23 -0
  57. package/dist/src/tools/record.js +48 -0
  58. package/dist/src/tools/record.js.map +1 -0
  59. package/dist/src/tools/replay.d.ts +21 -0
  60. package/dist/src/tools/replay.js +54 -0
  61. package/dist/src/tools/replay.js.map +1 -0
  62. package/dist/src/tools/scan.d.ts +18 -0
  63. package/dist/src/tools/scan.js +43 -0
  64. package/dist/src/tools/scan.js.map +1 -0
  65. package/dist/src/tools/score-server.d.ts +23 -0
  66. package/dist/src/tools/score-server.js +53 -0
  67. package/dist/src/tools/score-server.js.map +1 -0
  68. package/dist/src/tools/suggest-servers.d.ts +21 -0
  69. package/dist/src/tools/suggest-servers.js +114 -0
  70. package/dist/src/tools/suggest-servers.js.map +1 -0
  71. package/dist/src/tools/verify-tool.d.ts +25 -0
  72. package/dist/src/tools/verify-tool.js +48 -0
  73. package/dist/src/tools/verify-tool.js.map +1 -0
  74. package/dist/src/tools/watch.d.ts +23 -0
  75. package/dist/src/tools/watch.js +67 -0
  76. package/dist/src/tools/watch.js.map +1 -0
  77. package/dist/src/utils/security.d.ts +3 -0
  78. package/dist/src/utils/security.js +37 -0
  79. package/dist/src/utils/security.js.map +1 -0
  80. package/dist/src/validate.d.ts +1 -0
  81. package/dist/src/validate.js +119 -35
  82. package/dist/src/validate.js.map +1 -1
  83. package/docs/agent-tasks.md +1 -1
  84. package/docs/commercial-boundary.md +9 -1
  85. package/docs/contributor-recognition.md +1 -0
  86. package/docs/mcp-receipts.md +9 -0
  87. package/docs/mcp-server-safety-index.md +19 -16
  88. package/docs/metrics-dashboard.md +17 -1
  89. package/docs/private-mcp-fleet-risk-graph.md +69 -0
  90. package/docs/receipt-graph.md +118 -31
  91. package/docs/safety-index/artifacts/chrome-devtools-mcp-server.json +1745 -0
  92. package/docs/safety-index/artifacts/chrome-devtools-mcp-server.md +169 -0
  93. package/docs/safety-index/artifacts/filesystem-mcp-server.json +786 -0
  94. package/docs/safety-index/artifacts/filesystem-mcp-server.md +169 -0
  95. package/docs/safety-index/mcp-risk-graph.html +167 -0
  96. package/docs/safety-index/mcp-risk-graph.json +669 -0
  97. package/docs/safety-index/mcp-risk-graph.md +47 -0
  98. package/docs/safety-index/targets.json +40 -0
  99. package/docs/sample-private-fleet-risk-graph.md +90 -0
  100. 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
- [![All Contributors](https://img.shields.io/badge/all_contributors-1-orange.svg?style=flat-square)](#contributors-)
10
+ [![All Contributors](https://img.shields.io/badge/all_contributors-2-orange.svg?style=flat-square)](#contributors-)
11
11
  <!-- ALL-CONTRIBUTORS-BADGE:END -->
12
12
 
13
13
  ## Contributors
@@ -19,6 +19,7 @@ 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></td>
22
23
  </tr>
23
24
  </tbody>
24
25
  </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
  ```
@@ -24,10 +26,13 @@
24
26
  [![Smithery](https://smithery.ai/badge/@kryptosai/mcp-observatory)](https://smithery.ai/server/@kryptosai/mcp-observatory)
25
27
  [![mcp-observatory MCP server](https://glama.ai/mcp/servers/KryptosAI/mcp-observatory/badges/score.svg)](https://glama.ai/mcp/servers/KryptosAI/mcp-observatory)
26
28
  [![All Contributors](https://img.shields.io/badge/all_contributors-1-orange.svg?style=flat-square)](./CONTRIBUTORS.md)
29
+ [![Gitee Stars](https://gitee.com/williamweishuhn/mcp-observatory/badge/star.svg)](https://gitee.com/williamweishuhn/mcp-observatory)
30
+ [![Gitee Forks](https://gitee.com/williamweishuhn/mcp-observatory/badge/fork.svg)](https://gitee.com/williamweishuhn/mcp-observatory)
31
+ [![Gitee](https://img.shields.io/badge/Gitee-้•œๅƒ-orange)](https://gitee.com/williamweishuhn/mcp-observatory)
27
32
 
28
- **MCP Observatory is a security release gate for MCP servers. It helps teams validate MCP servers before deployment into sensitive, regulated, or mission-critical agentic AI environments.**
33
+ **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
34
 
30
- Agents should not depend on tools nobody tests. MCP Observatory turns a local MCP check into release-gate evidence maintainers and security teams already understand: profile-mapped audit reports, normalized findings, SARIF for GitHub Code Scanning, GitHub Actions gates, schema drift detection, trust status output, score badges, and agent-accessible diagnostics.
35
+ 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
36
 
32
37
  ```bash
33
38
  npx @kryptosai/mcp-observatory audit npx -y my-mcp-server --profile nsa-mcp --format markdown --output mcp-audit.md
@@ -59,7 +64,7 @@ The `nsa-mcp` profile is not an official certification. It maps MCP Observatory
59
64
 
60
65
  ## Try It
61
66
 
62
- Run a buyer-ready MCP security audit:
67
+ 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
68
 
64
69
  ```bash
65
70
  npx @kryptosai/mcp-observatory audit npx -y my-mcp-server --profile nsa-mcp --format markdown --output report.md
@@ -78,6 +83,7 @@ Emit the portable trust record:
78
83
  ```bash
79
84
  npx @kryptosai/mcp-observatory audit npx -y my-mcp-server --profile nsa-mcp --format json --output report.json --receipt receipt.json
80
85
  npx @kryptosai/mcp-observatory receipt npx -y my-mcp-server --profile nsa-mcp --format markdown --output receipt.md
86
+ 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
87
  ```
82
88
 
83
89
  Then make the evidence repeatable in CI:
@@ -86,7 +92,7 @@ Then make the evidence repeatable in CI:
86
92
  npx @kryptosai/mcp-observatory setup-ci --all --command "npx -y my-mcp-server" --sarif
87
93
  ```
88
94
 
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 Receipt Graph](./docs/receipt-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).
95
+ 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
96
 
91
97
  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
98
 
@@ -100,7 +106,7 @@ Want a receipt for a server your agent depends on? Comment on [Drop an MCP serve
100
106
  | Attack simulation output | [MCP Attack Simulator](./docs/mcp-attack-simulator.md) |
101
107
  | MCP receipts | [Portable trust receipts](./docs/mcp-receipts.md) |
102
108
  | Tool-call receipts | [Receipt standard](./docs/tool-call-receipts.md) for reproducible MCP evidence |
103
- | Receipt graph | [Server-to-evidence map](./docs/receipt-graph.md) for agent trust decisions |
109
+ | Risk graph | [Server-to-evidence map](./docs/receipt-graph.md) for agent toolchain trust decisions |
104
110
  | SARIF / Code Scanning output | [GitHub Code Scanning demo](./docs/code-scanning-demo.md) |
105
111
  | Real MCP server evaluations | [MCP Server Safety Index](./docs/mcp-server-safety-index.md) |
106
112
  | Reference reports | [Reference evaluations](./docs/reference-evaluations.md) |
@@ -169,6 +175,7 @@ Observatory gives maintainers and teams:
169
175
  - **One-command CI setup** with `setup-ci --all`
170
176
  - **Profile-mapped audits** with `audit --profile nsa-mcp`
171
177
  - **MCP receipts** that package target, evidence, verdict, action, and reproduction commands
178
+ - **MCP risk graphs** that group servers by capability boundary, receipt state, CI posture, and recommended action
172
179
  - **Action receipts** that say `allow`, `gate`, `rerun`, `quarantine`, or `escalate`
173
180
  - **GitHub PR comments** for compatibility, drift, and security findings
174
181
  - **GitHub Code Scanning SARIF** for normalized MCP findings
@@ -177,7 +184,7 @@ Observatory gives maintainers and teams:
177
184
  - **MCP server mode** so agents can inspect other MCP servers directly
178
185
  - **Production support path** for hosted history, private repo reporting, certification, support, and fleet visibility
179
186
 
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 Receipt 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), and [commercial support](./COMMERCIAL.md).
187
+ 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
188
 
182
189
  ## For Security And Platform Teams
183
190
 
@@ -187,7 +194,7 @@ MCP Observatory gives security and platform teams MCP server CI, schema drift de
187
194
 
188
195
  ## Production Support
189
196
 
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. Attack simulation packages start at `$15,000`; narrow readiness reviews start at `$2,500`.
197
+ 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
198
 
192
199
  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
200
 
@@ -252,6 +259,7 @@ Or add it manually to your config:
252
259
  | `setup-ci` / `init-ci` | Create a GitHub Action and badge snippet for MCP compatibility/security checks |
253
260
  | `setup-ci --sarif` | Generate a workflow that uploads normalized findings to GitHub Code Scanning |
254
261
  | `setup-ci --doctor` | Inspect whether the repository has a complete CI adoption kit |
262
+ | `risk-graph --input <path>` | Merge receipts and run artifacts into JSON, Markdown, and HTML MCP risk graphs |
255
263
  | `--no-attack-sim` | Opt out of the default safe attack simulation on `scan` or `test` |
256
264
  | `ci-report` | Generate CI report for GitHub issue creation |
257
265
  | `enterprise-report` | Generate a static production/security report from run artifacts |
@@ -562,7 +570,15 @@ The record/replay/verify pattern is inspired by:
562
570
 
563
571
  ## Contributing
564
572
 
565
- See [CONTRIBUTING.md](./CONTRIBUTING.md) for guidelines. The fastest way to contribute is to add a real passing target with a distinct capability shape, a clearer report surface, or a cleaner startup diagnosis.
573
+ We welcome contributors! This project follows a [Contributor Covenant Code of Conduct](./CODE_OF_CONDUCT.md). The fastest way to get involved:
574
+
575
+ [![good first issue](https://img.shields.io/github/issues-search/KryptosAI/mcp-observatory?query=is%3Aopen%20label%3A%22good%20first%20issue%22&label=good%20first%20issue&color=green)](https://github.com/KryptosAI/mcp-observatory/issues?q=is%3Aopen+label%3A%22good+first+issue%22)
576
+
577
+ ```bash
578
+ git clone https://github.com/KryptosAI/mcp-observatory.git && cd mcp-observatory && npm install && npm test
579
+ ```
580
+
581
+ 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
582
 
567
583
  ---
568
584