@kryptosai/mcp-observatory 0.23.0 → 0.24.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/README.md +8 -7
- package/dist/src/commands/init-ci.d.ts +3 -0
- package/dist/src/commands/init-ci.js +24 -12
- package/dist/src/commands/init-ci.js.map +1 -1
- package/dist/src/reporters/pr-comment.js +6 -2
- package/dist/src/reporters/pr-comment.js.map +1 -1
- package/docs/certification-campaign-template.md +2 -2
- package/docs/mcp-safety-report-latest.md +12 -7
- package/docs/mcp-server-safety-index.md +56 -80
- package/docs/methodology.md +90 -0
- package/docs/metrics-dashboard.md +105 -0
- package/docs/paid-pilot-offer.md +21 -5
- package/docs/project-case-study.md +12 -8
- package/docs/proof.md +28 -15
- package/docs/public-post-drafts.md +18 -6
- package/docs/publish-readiness.md +1 -5
- package/docs/reference-evaluations.md +1 -1
- package/docs/safety-index/artifacts/antv-chart-server.json +2765 -0
- package/docs/safety-index/artifacts/antv-chart-server.md +156 -0
- package/docs/safety-index/artifacts/browsermcp-server.json +416 -0
- package/docs/safety-index/artifacts/browsermcp-server.md +163 -0
- package/docs/safety-index/artifacts/context7-server.json +286 -0
- package/docs/safety-index/artifacts/context7-server.md +163 -0
- package/docs/safety-index/artifacts/everything-server.json +482 -0
- package/docs/safety-index/artifacts/everything-server.md +163 -0
- package/docs/safety-index/artifacts/executeautomation-playwright-server.json +955 -0
- package/docs/safety-index/artifacts/executeautomation-playwright-server.md +163 -0
- package/docs/safety-index/artifacts/filesystem-server.json +583 -0
- package/docs/safety-index/artifacts/filesystem-server.md +156 -0
- package/docs/safety-index/artifacts/memory-server.json +469 -0
- package/docs/safety-index/artifacts/memory-server.md +156 -0
- package/docs/safety-index/artifacts/opentofu-server.json +387 -0
- package/docs/safety-index/artifacts/opentofu-server.md +163 -0
- package/docs/safety-index/artifacts/playwright-mcp-server.json +919 -0
- package/docs/safety-index/artifacts/playwright-mcp-server.md +156 -0
- package/docs/safety-index/artifacts/promptopia-server.json +442 -0
- package/docs/safety-index/artifacts/promptopia-server.md +156 -0
- package/docs/safety-index/artifacts/puppeteer-server.json +377 -0
- package/docs/safety-index/artifacts/puppeteer-server.md +163 -0
- package/docs/safety-index/artifacts/ref-tools-server.json +262 -0
- package/docs/safety-index/artifacts/ref-tools-server.md +156 -0
- package/docs/safety-index/artifacts/sequential-thinking-server.json +286 -0
- package/docs/safety-index/artifacts/sequential-thinking-server.md +156 -0
- package/docs/safety-index/maintainer-note-template.md +25 -0
- package/docs/safety-index/targets.json +192 -0
- package/package.json +12 -9
package/README.md
CHANGED
|
@@ -55,7 +55,7 @@ Observatory gives maintainers and teams:
|
|
|
55
55
|
- **MCP server mode** so agents can inspect other MCP servers directly
|
|
56
56
|
- **Production pilot path** for hosted history, private repo reporting, certification, support, and fleet visibility
|
|
57
57
|
|
|
58
|
-
See the [MCP server security field guide](./docs/mcp-security-field-guide.md), [MCP Server Safety Index](./docs/mcp-server-safety-index.md), [reference evaluations](./docs/reference-evaluations.md), [MCP lock files](./docs/mcp-lock-files.md), [public proof](./docs/proof.md), the [certification distribution loop](./docs/certification-distribution.md), and [commercial pilots](./COMMERCIAL.md).
|
|
58
|
+
See the [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), [reference evaluations](./docs/reference-evaluations.md), [MCP lock files](./docs/mcp-lock-files.md), [public proof](./docs/proof.md), the [certification distribution loop](./docs/certification-distribution.md), [local metrics dashboard](./docs/metrics-dashboard.md), and [commercial pilots](./COMMERCIAL.md).
|
|
59
59
|
|
|
60
60
|
## For Security And Platform Teams
|
|
61
61
|
|
|
@@ -219,18 +219,19 @@ on: [pull_request]
|
|
|
219
219
|
|
|
220
220
|
permissions:
|
|
221
221
|
contents: read
|
|
222
|
-
pull-requests: write
|
|
223
|
-
statuses: write
|
|
224
222
|
|
|
225
223
|
jobs:
|
|
226
224
|
observatory:
|
|
227
225
|
runs-on: ubuntu-latest
|
|
228
226
|
steps:
|
|
229
227
|
- uses: actions/checkout@v4
|
|
230
|
-
- uses: KryptosAI/mcp-observatory/action@
|
|
228
|
+
- uses: KryptosAI/mcp-observatory/action@v0.24.0
|
|
231
229
|
with:
|
|
232
230
|
command: npx -y my-mcp-server
|
|
231
|
+
deep: true
|
|
233
232
|
security: true
|
|
233
|
+
comment-on-pr: false
|
|
234
|
+
set-status: false
|
|
234
235
|
```
|
|
235
236
|
|
|
236
237
|
Action inputs:
|
|
@@ -244,11 +245,11 @@ Action inputs:
|
|
|
244
245
|
| `security` | Run security analysis | `false` |
|
|
245
246
|
| `fail-on-regression` | Fail the action on issues | `true` |
|
|
246
247
|
| `fail-on-baseline-drift` | Fail the action when baseline verification detects drift | `true` |
|
|
247
|
-
| `comment-on-pr` | Post report as PR comment | `true` |
|
|
248
|
-
| `set-status` | Set a commit status check (green/red) on the HEAD SHA | `true` |
|
|
248
|
+
| `comment-on-pr` | Post report as PR comment. Requires `pull-requests: write`. | `true` |
|
|
249
|
+
| `set-status` | Set a commit status check (green/red) on the HEAD SHA. Requires `statuses: write`. | `true` |
|
|
249
250
|
| `github-token` | Token for PR comments and commit statuses | `${{ github.token }}` |
|
|
250
251
|
|
|
251
|
-
The action
|
|
252
|
+
The action can comment on PRs and set commit statuses when the workflow grants write permissions. `init-ci` generates read-only third-party-friendly workflows by default and lets maintainers opt into comments/statuses later. See [`action/README.md`](./action/README.md) for all options.
|
|
252
253
|
|
|
253
254
|
Production teams can add hosted CI history, private-repo reporting, recurring security reports, certification review, support, and fleet visibility. Run `npx @kryptosai/mcp-observatory cloud` for pilot options.
|
|
254
255
|
|
|
@@ -7,6 +7,7 @@ const DEFAULT_TARGET_CONFIG_PATH = "mcp-observatory.target.json";
|
|
|
7
7
|
const DEFAULT_PR_BODY_PATH = "docs/mcp-observatory-pr-body.md";
|
|
8
8
|
const DEFAULT_ISSUE_BODY_PATH = "docs/mcp-observatory-issue.md";
|
|
9
9
|
const DEFAULT_SCORE_BADGE_PATH = "docs/mcp-observatory-score-badge.md";
|
|
10
|
+
const DEFAULT_ACTION_REF = "v0.24.0";
|
|
10
11
|
async function exists(filePath) {
|
|
11
12
|
try {
|
|
12
13
|
await access(filePath);
|
|
@@ -19,6 +20,9 @@ async function exists(filePath) {
|
|
|
19
20
|
function workflowYaml(options) {
|
|
20
21
|
const command = options.command?.trim();
|
|
21
22
|
const target = options.target?.trim();
|
|
23
|
+
const commentsEnabled = options.commentOnPr === true;
|
|
24
|
+
const statusEnabled = options.setStatus === true;
|
|
25
|
+
const actionRef = options.actionRef?.trim() || DEFAULT_ACTION_REF;
|
|
22
26
|
const lines = [
|
|
23
27
|
"name: MCP Observatory",
|
|
24
28
|
"",
|
|
@@ -29,17 +33,12 @@ function workflowYaml(options) {
|
|
|
29
33
|
"",
|
|
30
34
|
"permissions:",
|
|
31
35
|
" contents: read",
|
|
32
|
-
" pull-requests: write",
|
|
33
|
-
" statuses: write",
|
|
34
|
-
"",
|
|
35
|
-
"jobs:",
|
|
36
|
-
" mcp-observatory:",
|
|
37
|
-
" runs-on: ubuntu-latest",
|
|
38
|
-
" steps:",
|
|
39
|
-
" - uses: actions/checkout@v6",
|
|
40
|
-
" - uses: KryptosAI/mcp-observatory/action@main",
|
|
41
|
-
" with:",
|
|
42
36
|
];
|
|
37
|
+
if (commentsEnabled)
|
|
38
|
+
lines.push(" pull-requests: write");
|
|
39
|
+
if (statusEnabled)
|
|
40
|
+
lines.push(" statuses: write");
|
|
41
|
+
lines.push("", "jobs:", " mcp-observatory:", " runs-on: ubuntu-latest", " steps:", " - uses: actions/checkout@v6", ` - uses: KryptosAI/mcp-observatory/action@${actionRef}`, " with:");
|
|
43
42
|
if (target) {
|
|
44
43
|
lines.push(` target: ${target}`);
|
|
45
44
|
}
|
|
@@ -49,7 +48,11 @@ function workflowYaml(options) {
|
|
|
49
48
|
else {
|
|
50
49
|
lines.push(` command: ${command ?? "npx -y <server-package>"}`);
|
|
51
50
|
}
|
|
52
|
-
lines.push(" deep: true", " security: true",
|
|
51
|
+
lines.push(" deep: true", " security: true", ` comment-on-pr: ${commentsEnabled ? "true" : "false"}`, ` set-status: ${statusEnabled ? "true" : "false"}`);
|
|
52
|
+
if (!commentsEnabled && !statusEnabled) {
|
|
53
|
+
lines.push(" # Read-only by default for low-friction external PRs. Maintainers can enable PR comments/statuses later.");
|
|
54
|
+
}
|
|
55
|
+
lines.push("");
|
|
53
56
|
return lines.join("\n");
|
|
54
57
|
}
|
|
55
58
|
function badgeMarkdown() {
|
|
@@ -94,7 +97,11 @@ function prBodyMarkdown(options) {
|
|
|
94
97
|
"- publishes a small PR report for maintainers",
|
|
95
98
|
"- adds an optional README trust badge",
|
|
96
99
|
"",
|
|
97
|
-
"This does not require an MCP Observatory account.
|
|
100
|
+
"This does not require an MCP Observatory account. The generated workflow is read-only by default for low-friction review; maintainers can enable PR comments or commit statuses later if they want inline reporting.",
|
|
101
|
+
"",
|
|
102
|
+
"The action reference is pinned to a release by default. Security-sensitive repos can replace it with a full commit SHA.",
|
|
103
|
+
"",
|
|
104
|
+
"Maintainer note: if this PR is opened on the MCP server's own repository, please update `mcp-observatory.target.json` to run the local build/start command instead of a published package. The generated `npx` command is a portable default, but local CI should validate the code in this PR.",
|
|
98
105
|
"",
|
|
99
106
|
"Generated by:",
|
|
100
107
|
"",
|
|
@@ -119,6 +126,8 @@ function issueBodyMarkdown(options) {
|
|
|
119
126
|
"",
|
|
120
127
|
"The generated workflow runs on pull requests and pushes, comments a concise report, and can include a README badge if maintainers want a public trust signal.",
|
|
121
128
|
"",
|
|
129
|
+
"If this is the server's own repository, prefer a local build/start command in the generated target config so CI validates the pull request code rather than only the published package.",
|
|
130
|
+
"",
|
|
122
131
|
].join("\n");
|
|
123
132
|
}
|
|
124
133
|
function scoreBadgeMarkdown() {
|
|
@@ -206,6 +215,9 @@ export function registerInitCiCommands(program) {
|
|
|
206
215
|
.option("--pr-body [file]", "Also write a maintainer PR body.")
|
|
207
216
|
.option("--issue-body [file]", "Also write an issue-only fallback body.")
|
|
208
217
|
.option("--score-badge [file]", "Also write score badge generation instructions.")
|
|
218
|
+
.option("--comment-on-pr", "Allow the generated workflow to post PR comments. This adds pull-requests: write permission.", false)
|
|
219
|
+
.option("--set-status", "Allow the generated workflow to set commit statuses. This adds statuses: write permission.", false)
|
|
220
|
+
.option("--action-ref <ref>", "Git ref for KryptosAI/mcp-observatory/action. Use a full commit SHA for strict third-party action pinning.", DEFAULT_ACTION_REF)
|
|
209
221
|
.option("--all", "Write the full adoption kit: workflow, badge, target config, PR body, issue body, and score badge instructions.", false)
|
|
210
222
|
.option("--force", "Overwrite existing files.", false)
|
|
211
223
|
.action(async (options) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init-ci.js","sourceRoot":"","sources":["../../../src/commands/init-ci.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"init-ci.js","sourceRoot":"","sources":["../../../src/commands/init-ci.ts"],"names":[],"mappings":"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"}
|
|
@@ -75,13 +75,17 @@ function renderRunComment(artifact, trend) {
|
|
|
75
75
|
const highMedSecurity = security.filter(f => f.severity === "high" || f.severity === "medium");
|
|
76
76
|
const issueCount = highMedSecurity.length + failingChecks.length + quality.length + (conformance ? 1 : 0);
|
|
77
77
|
// Header
|
|
78
|
-
if (issueCount === 0) {
|
|
78
|
+
if (safety.verdict === "Ready" && issueCount === 0) {
|
|
79
79
|
sections.push("## 🔭 MCP Observatory — All clear ✅");
|
|
80
80
|
sections.push("");
|
|
81
81
|
sections.push("All checks passed. No security issues, no schema quality warnings.");
|
|
82
82
|
}
|
|
83
83
|
else {
|
|
84
|
-
|
|
84
|
+
const label = safety.verdict === "Blocked" ? "Action needed" : "Review recommended";
|
|
85
|
+
const issueLabel = issueCount > 0
|
|
86
|
+
? `${issueCount} issue${issueCount === 1 ? "" : "s"} found`
|
|
87
|
+
: "run did not clear the gate";
|
|
88
|
+
sections.push(`## 🔭 MCP Observatory — ${label}: ${issueLabel}`);
|
|
85
89
|
}
|
|
86
90
|
// Security (red)
|
|
87
91
|
if (highMedSecurity.length > 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pr-comment.js","sourceRoot":"","sources":["../../../src/reporters/pr-comment.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pr-comment.js","sourceRoot":"","sources":["../../../src/reporters/pr-comment.ts"],"names":[],"mappings":"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"}
|
|
@@ -42,7 +42,7 @@ Skip:
|
|
|
42
42
|
| 5 | `browserbase/mcp-server-browserbase` | `npx -y @browserbasehq/mcp-server-browserbase` | Browser Automation | Hosted browser MCP category | verify auth-free startup | May require API key; issue-only if startup requires credentials | researched | | |
|
|
43
43
|
| 6 | `smithery-ai/server-sequential-thinking` | `npx -y @smithery-ai/server-sequential-thinking` | Developer Tools | MCP directory ecosystem | verify package/repo naming | Good low-risk simple server if public package starts cleanly | researched | | |
|
|
44
44
|
| 7 | `kazuph/mcp-taskmanager` | `npx -y @kazuph/mcp-taskmanager@latest` | Developer Tools | 200+ stars / task/project MCP category | Local validation passed: 10 tools | Scoped package name corrected from tracker | pr-opened | https://github.com/kazuph/mcp-taskmanager/pull/11 | Waiting for maintainer review |
|
|
45
|
-
| 8 | `cyanheads/filesystem-mcp-server` | `node dist/index.js` | Filesystem | Filesystem MCP category | Local validation passed after fix: 10 tools | Fixed real conformance bug: advertised resources without `resources/list`; workflow uses temp sandbox |
|
|
45
|
+
| 8 | `cyanheads/filesystem-mcp-server` | `node dist/index.js` | Filesystem | Filesystem MCP category | Local validation passed after fix: 10 tools | Fixed real conformance bug: advertised resources without `resources/list`; workflow uses temp sandbox | closed-unmerged | https://github.com/cyanheads/filesystem-mcp-server/pull/19 | Closed by maintainer without merge |
|
|
46
46
|
| 9 | `redis/mcp-redis` | `uvx mcp-redis` | Database | Enterprise database category | verify auth-free startup | Database target may require service; issue-only if credentials needed | researched | | |
|
|
47
47
|
| 10 | `mongodb-js/mongodb-mcp-server` | `npx -y mongodb-mcp-server` | Database | Enterprise database category | verify auth-free startup | Likely needs connection string; issue-only first | researched | | |
|
|
48
48
|
| 11 | `supabase-community/supabase-mcp` | `npx -y supabase-mcp` | Database | Enterprise/SaaS category | verify current package | Likely requires token; issue-only first | researched | | |
|
|
@@ -54,7 +54,7 @@ Skip:
|
|
|
54
54
|
| 17 | `BrowserMCP/mcp` | `npx -y @browsermcp/mcp` | Browser Automation | 6k+ stars / browser-control MCP category | Local validation passed: 12 tools | Browser automation trust boundary; workflow is inventory/security only | pr-opened | https://github.com/BrowserMCP/mcp/pull/189 | Waiting for maintainer review |
|
|
55
55
|
| 18 | `UI5/mcp-server` | `npx -y @ui5/mcp-server` | Developer Tools | SAP/UI5 ecosystem MCP package | Local validation passed: 10 tools | Developer tooling surface; no credentials required for inventory | pr-opened | https://github.com/UI5/mcp-server/pull/348 | Waiting for maintainer review |
|
|
56
56
|
| 19 | `apify/actors-mcp-server` | `npx -y @apify/actors-mcp-server` | SaaS/API | Automation platform category | verify auth-free startup | Likely requires token; issue-only first | researched | | |
|
|
57
|
-
| 20 | `makenotion/notion-mcp-server` | `npx -y @notionhq/notion-mcp-server` | SaaS/API | Major SaaS category | Local validation passed: 24 tools | Workspace-data MCP; PR is compatibility/schema/security inventory only | pr-opened | https://github.com/makenotion/notion-mcp-server/pull/324 | Waiting for maintainer review |
|
|
57
|
+
| 20 | `makenotion/notion-mcp-server` | `npx -y @notionhq/notion-mcp-server` | SaaS/API | Major SaaS category | Local validation passed: 24 tools | Workspace-data MCP; PR is compatibility/schema/security inventory only | pr-opened | https://github.com/makenotion/notion-mcp-server/pull/324 | Waiting for maintainer review; external Semgrep check failing |
|
|
58
58
|
| 21 | `linear/linear-mcp` | `npx -y @linear/mcp-server` | SaaS/API | Developer SaaS category | verify package | Likely requires token; issue-only first | researched | | |
|
|
59
59
|
| 22 | `sentry/sentry-mcp` | `npx -y @sentry/mcp-server` | Observability | Developer SaaS category | verify package | Likely requires token; issue-only first | researched | | |
|
|
60
60
|
| 23 | `elastic/mcp-server-elasticsearch` | `npx -y @elastic/mcp-server-elasticsearch` | Search | Enterprise search category | verify package | Likely requires service; issue-only first | researched | | |
|
|
@@ -24,13 +24,18 @@ Safe aggregate telemetry from the latest local export:
|
|
|
24
24
|
|
|
25
25
|
| Metric | Value |
|
|
26
26
|
| --- | ---: |
|
|
27
|
-
| Total telemetry events |
|
|
28
|
-
| Total sessions | 7,
|
|
29
|
-
| External sessions | 5,
|
|
27
|
+
| Total telemetry events | 11,481 |
|
|
28
|
+
| Total sessions | 7,571 |
|
|
29
|
+
| External sessions | 5,389 |
|
|
30
30
|
| External CI sessions | 2,446 |
|
|
31
|
-
| Attributed company/org sessions |
|
|
32
|
-
|
|
|
33
|
-
|
|
|
31
|
+
| Attributed company/org sessions | 148 |
|
|
32
|
+
| Attributed company/org candidates | 12 |
|
|
33
|
+
| Latest external activity | June 21, 2026 |
|
|
34
|
+
| npm downloads snapshot | 511 downloads, June 11-20, 2026 |
|
|
35
|
+
| GitHub clones in visible traffic window | 745 |
|
|
36
|
+
| Unique cloners in visible traffic window | 232 |
|
|
37
|
+
| GitHub page views in visible traffic window | 12 |
|
|
38
|
+
| Unique GitHub viewers in visible traffic window | 9 |
|
|
34
39
|
|
|
35
40
|
Top external commands:
|
|
36
41
|
|
|
@@ -74,7 +79,7 @@ Production teams can use MCP Observatory for:
|
|
|
74
79
|
- support and rollout review
|
|
75
80
|
- fleet visibility across teams and repos
|
|
76
81
|
|
|
77
|
-
|
|
82
|
+
See [Commercial Pilots](../COMMERCIAL.md) for production/private MCP usage.
|
|
78
83
|
|
|
79
84
|
## Launch Post
|
|
80
85
|
|
|
@@ -1,85 +1,61 @@
|
|
|
1
|
-
# MCP Server Safety Index
|
|
2
|
-
|
|
3
|
-
The MCP Server Safety Index is
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
|
21
|
-
|
|
|
22
|
-
|
|
|
23
|
-
|
|
|
24
|
-
|
|
|
25
|
-
|
|
|
26
|
-
|
|
|
27
|
-
|
|
|
28
|
-
|
|
|
29
|
-
|
|
|
30
|
-
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
npx @kryptosai/mcp-observatory lock verify
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
## What Each Column Means
|
|
54
|
-
|
|
55
|
-
- What To Check: the minimum compatibility/security surface a maintainer or platform team should inspect.
|
|
56
|
-
- Risk Class: the operational reason the server matters before agents depend on it.
|
|
57
|
-
- Status: public proof such as PR open, PR accepted, badge added, researched, or needs maintainer review.
|
|
1
|
+
# MCP Server Safety Index v1
|
|
2
|
+
|
|
3
|
+
The MCP Server Safety Index is an evidence standard for MCP readiness. It is not a leaderboard and does not rank maintainers.
|
|
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.
|
|
6
|
+
|
|
7
|
+
For the rules behind this page, see the [Safety Methodology](./methodology.md).
|
|
8
|
+
|
|
9
|
+
## Snapshot
|
|
10
|
+
|
|
11
|
+
- Evaluated servers: 13
|
|
12
|
+
- Ready for CI: 10
|
|
13
|
+
- Needs review before production: 1
|
|
14
|
+
- Unsafe default posture: 2
|
|
15
|
+
- Not reproducible: 0
|
|
16
|
+
- Latest run: 2026-06-24T02:07:44.894Z
|
|
17
|
+
|
|
18
|
+
## Evaluations
|
|
19
|
+
|
|
20
|
+
| # | Server | Category | Verdict | Failure Class | Reproduce | Evidence | Notes |
|
|
21
|
+
| ---: | --- | --- | --- | --- | --- | --- | --- |
|
|
22
|
+
| 1 | [Official everything server](https://github.com/modelcontextprotocol/servers) | Reference | **Ready for CI** | Broad protocol surface | `npx -y @modelcontextprotocol/server-everything` | [JSON](./safety-index/artifacts/everything-server.json) / [report](./safety-index/artifacts/everything-server.md) | Zero-config official package; useful as a broad protocol baseline. [public proof](https://github.com/modelcontextprotocol/servers/pull/4392) |
|
|
23
|
+
| 2 | [Official sequential thinking server](https://github.com/modelcontextprotocol/servers) | Reference | **Ready for CI** | Tool schema clarity | `npx -y @modelcontextprotocol/server-sequential-thinking` | [JSON](./safety-index/artifacts/sequential-thinking-server.json) / [report](./safety-index/artifacts/sequential-thinking-server.md) | Zero-config official package. |
|
|
24
|
+
| 3 | [Official memory server](https://github.com/modelcontextprotocol/servers) | Reference / Memory | **Ready for CI** | Persistent state tools | `npx -y @modelcontextprotocol/server-memory` | [JSON](./safety-index/artifacts/memory-server.json) / [report](./safety-index/artifacts/memory-server.md) | Zero-config official package. |
|
|
25
|
+
| 4 | [Official filesystem server](https://github.com/modelcontextprotocol/servers) | Filesystem | **Needs review before production** | Sandboxed filesystem access | `npx -y @modelcontextprotocol/server-filesystem examples/filesystem-fixture` | [JSON](./safety-index/artifacts/filesystem-server.json) / [report](./safety-index/artifacts/filesystem-server.md) | Runs against the checked-in harmless fixture directory. |
|
|
26
|
+
| 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
|
+
| 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
|
+
| 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 | [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. |
|
|
30
|
+
| 9 | [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. |
|
|
31
|
+
| 10 | [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) |
|
|
32
|
+
| 11 | [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. |
|
|
33
|
+
| 12 | [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) |
|
|
34
|
+
| 13 | [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) |
|
|
35
|
+
|
|
36
|
+
## Patterns Observed
|
|
37
|
+
|
|
38
|
+
- Browser/code execution boundary: 2 server(s)
|
|
39
|
+
- Artifact-producing tools: 1 server(s)
|
|
40
|
+
- Broad protocol surface: 1 server(s)
|
|
41
|
+
- Browser-control boundary: 1 server(s)
|
|
42
|
+
- Infrastructure tool surface: 1 server(s)
|
|
43
|
+
- Persistent state tools: 1 server(s)
|
|
44
|
+
- Prompt-injection-sensitive retrieval: 1 server(s)
|
|
45
|
+
- Prompt/resource contract: 1 server(s)
|
|
46
|
+
- Prompt/tool inventory: 1 server(s)
|
|
47
|
+
- Sandboxed filesystem access: 1 server(s)
|
|
48
|
+
- Startup/listing reproducibility: 1 server(s)
|
|
49
|
+
- Tool schema clarity: 1 server(s)
|
|
58
50
|
|
|
59
51
|
## Publication Rules
|
|
60
52
|
|
|
61
|
-
- Use only public repositories, public package commands, public PRs,
|
|
62
|
-
-
|
|
63
|
-
-
|
|
64
|
-
-
|
|
65
|
-
-
|
|
66
|
-
|
|
67
|
-
## Five Patterns To Publish From v0
|
|
68
|
-
|
|
69
|
-
1. Browser automation MCP servers need explicit policy around code execution, screenshots, navigation, and mutation.
|
|
70
|
-
2. Filesystem MCP servers need harmless CI sandboxes and clear read/write boundaries.
|
|
71
|
-
3. SaaS and cloud MCP servers often cannot be meaningfully checked without token-safe target configs.
|
|
72
|
-
4. Database MCP servers need read/write classification and connection-string hygiene before CI rollout.
|
|
73
|
-
5. Lock files turn MCP surface drift into a reviewable PR event instead of an invisible agent dependency change.
|
|
74
|
-
|
|
75
|
-
## Next Wave Criteria
|
|
76
|
-
|
|
77
|
-
Prioritize 20-50 servers that have:
|
|
53
|
+
- Use only public repositories, public package commands, public PRs, and generated sanitized artifacts.
|
|
54
|
+
- Treat findings as reproducible evidence, not public shaming.
|
|
55
|
+
- Prefer “needs review” language unless there is clear artifact-backed proof of a dangerous default.
|
|
56
|
+
- Keep raw telemetry, emails, hostnames, private URLs, tokens, and customer claims out of public materials.
|
|
57
|
+
- Send maintainers the report first; open CI PRs only when the report is useful and the target can run safely.
|
|
78
58
|
|
|
79
|
-
|
|
80
|
-
- visible stars, downloads, or directory listings
|
|
81
|
-
- simple `npx`, `uvx`, or Docker startup commands
|
|
82
|
-
- enterprise-relevant categories such as browser automation, filesystem, documentation/search, databases, cloud, productivity, and developer tools
|
|
83
|
-
- no existing MCP compatibility/security CI
|
|
59
|
+
## Next Step
|
|
84
60
|
|
|
85
|
-
|
|
61
|
+
Use this index to start maintainer conversations and private readiness reviews. The buyer-facing offer is a private MCP readiness review with CI rollout, drift/security reporting, and safe-for-agent-dependency verdicts.
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
# MCP Observatory Safety Methodology
|
|
2
|
+
|
|
3
|
+
MCP Observatory treats MCP servers as agent-facing dependencies. The Safety Index is designed to answer one practical question:
|
|
4
|
+
|
|
5
|
+
> Is this server ready for agents and teams to depend on, and what evidence supports that answer?
|
|
6
|
+
|
|
7
|
+
The index is not a leaderboard. It is a reproducible evidence standard for maintainers, security teams, platform teams, and buyers evaluating MCP servers.
|
|
8
|
+
|
|
9
|
+
## What Gets Tested
|
|
10
|
+
|
|
11
|
+
Each public evaluation runs MCP Observatory against a public repository or package command. A useful entry includes:
|
|
12
|
+
|
|
13
|
+
- server name and public source
|
|
14
|
+
- exact command and arguments
|
|
15
|
+
- run date
|
|
16
|
+
- MCP Observatory version
|
|
17
|
+
- JSON run artifact
|
|
18
|
+
- Markdown report
|
|
19
|
+
- verdict
|
|
20
|
+
- failure class
|
|
21
|
+
- reproduction notes
|
|
22
|
+
|
|
23
|
+
The default public check verifies startup, tools, prompts, resources, schema quality, and lightweight security findings. Some entries also include deeper security checks when the target can be evaluated without private credentials.
|
|
24
|
+
|
|
25
|
+
## Verdicts
|
|
26
|
+
|
|
27
|
+
- **Ready for CI:** the server starts, lists expected MCP surfaces, and has no high- or medium-severity security finding in the generated artifact.
|
|
28
|
+
- **Needs review before production:** the server is reproducible but has findings or partial results a maintainer/security reviewer should inspect before production use.
|
|
29
|
+
- **Not reproducible:** the server cannot complete a basic startup or listing check from the documented public command.
|
|
30
|
+
- **Unsafe default posture:** the artifact contains high-severity security findings that deserve explicit policy review before agent dependency.
|
|
31
|
+
- **Could not evaluate:** the public command cannot be evaluated without credentials, private infrastructure, or maintainer-provided safe configuration.
|
|
32
|
+
|
|
33
|
+
These verdicts are intentionally operational. They are not formal vulnerability claims.
|
|
34
|
+
|
|
35
|
+
## Scoring Inputs
|
|
36
|
+
|
|
37
|
+
MCP Observatory uses the same run artifact model across CLI, CI, reports, and the Safety Index. The health score considers:
|
|
38
|
+
|
|
39
|
+
- protocol compliance
|
|
40
|
+
- schema quality
|
|
41
|
+
- security and security-lite checks
|
|
42
|
+
- reliability/startup behavior
|
|
43
|
+
- performance where latency data is available
|
|
44
|
+
|
|
45
|
+
The Safety Index does not rank by score. Scores are supporting evidence; failure classes are the story.
|
|
46
|
+
|
|
47
|
+
## Failure Classes
|
|
48
|
+
|
|
49
|
+
Common MCP readiness patterns include:
|
|
50
|
+
|
|
51
|
+
- startup/listing reproducibility
|
|
52
|
+
- browser/code execution boundary
|
|
53
|
+
- filesystem boundary
|
|
54
|
+
- prompt-injection-sensitive retrieval
|
|
55
|
+
- persistent state tools
|
|
56
|
+
- infrastructure or cloud control surfaces
|
|
57
|
+
- artifact-producing tools
|
|
58
|
+
- schema clarity and drift
|
|
59
|
+
- token-safe configuration
|
|
60
|
+
|
|
61
|
+
The first public index emphasizes these classes so maintainers can improve concrete surfaces rather than argue about a single trust score.
|
|
62
|
+
|
|
63
|
+
## Reproducibility Rules
|
|
64
|
+
|
|
65
|
+
An index row should be included only when it can be reproduced from public information:
|
|
66
|
+
|
|
67
|
+
- public repo, package, or container reference
|
|
68
|
+
- no private telemetry
|
|
69
|
+
- no private customer evidence
|
|
70
|
+
- no raw emails, hostnames, private URLs, tokens, or response bodies
|
|
71
|
+
- a generated JSON artifact and Markdown report
|
|
72
|
+
- clear notes when credentials or maintainer context are required
|
|
73
|
+
|
|
74
|
+
If the safe public command is not known, the right next step is a maintainer note, not a drive-by CI PR.
|
|
75
|
+
|
|
76
|
+
## Maintainer Posture
|
|
77
|
+
|
|
78
|
+
The index is constructive by default:
|
|
79
|
+
|
|
80
|
+
- send the report first
|
|
81
|
+
- describe the failure class, not the maintainer
|
|
82
|
+
- offer a CI PR only if the target can run safely and the maintainer wants it
|
|
83
|
+
- prefer read-only workflows and pinned action refs for third-party repos
|
|
84
|
+
- use issue-first outreach for token-backed SaaS, cloud, payments, database, and browser-control servers
|
|
85
|
+
|
|
86
|
+
## Limitations
|
|
87
|
+
|
|
88
|
+
MCP Observatory cannot prove semantic safety. A passing result does not mean a server is safe for every workflow. It means the server produced reproducible evidence for compatibility, schema quality, and common security footguns under the tested command.
|
|
89
|
+
|
|
90
|
+
Production teams should pair these checks with their own threat model, policy, credential boundaries, sandboxing, approvals, and runtime monitoring.
|