@kryptosai/mcp-observatory 0.27.0 → 0.28.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/COMMERCIAL.md +6 -1
- package/CONTRIBUTORS.md +39 -0
- package/README.md +57 -18
- package/dist/src/adapters/http.js +1 -5
- package/dist/src/adapters/http.js.map +1 -1
- package/dist/src/cassette.js +3 -2
- package/dist/src/cassette.js.map +1 -1
- package/dist/src/checks/attack-sim.d.ts +18 -0
- package/dist/src/checks/attack-sim.js +304 -0
- package/dist/src/checks/attack-sim.js.map +1 -0
- package/dist/src/ci-issue.js +4 -3
- package/dist/src/ci-issue.js.map +1 -1
- package/dist/src/cli.js +17 -3
- package/dist/src/cli.js.map +1 -1
- package/dist/src/commands/attack-sim.d.ts +2 -0
- package/dist/src/commands/attack-sim.js +168 -0
- package/dist/src/commands/attack-sim.js.map +1 -0
- package/dist/src/commands/init-ci.d.ts +1 -0
- package/dist/src/commands/init-ci.js +8 -3
- package/dist/src/commands/init-ci.js.map +1 -1
- package/dist/src/commands/legacy.js +6 -1
- package/dist/src/commands/legacy.js.map +1 -1
- package/dist/src/commands/scan.js +7 -1
- package/dist/src/commands/scan.js.map +1 -1
- package/dist/src/commands/serve.js +9 -1
- package/dist/src/commands/serve.js.map +1 -1
- package/dist/src/commands/setup-ci-conversion.d.ts +1 -0
- package/dist/src/commands/setup-ci-conversion.js +1 -0
- package/dist/src/commands/setup-ci-conversion.js.map +1 -1
- package/dist/src/commands/telemetry.js +20 -14
- package/dist/src/commands/telemetry.js.map +1 -1
- package/dist/src/commands/test.js +13 -1
- package/dist/src/commands/test.js.map +1 -1
- package/dist/src/findings.js +41 -1
- package/dist/src/findings.js.map +1 -1
- package/dist/src/history.js +3 -2
- package/dist/src/history.js.map +1 -1
- package/dist/src/index.d.ts +2 -0
- package/dist/src/index.js +2 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/integrations/smithery.js +5 -1
- package/dist/src/integrations/smithery.js.map +1 -1
- package/dist/src/reporters/attack-sim.d.ts +2 -0
- package/dist/src/reporters/attack-sim.js +84 -0
- package/dist/src/reporters/attack-sim.js.map +1 -0
- package/dist/src/reporters/pr-comment.js +20 -6
- package/dist/src/reporters/pr-comment.js.map +1 -1
- package/dist/src/runner.d.ts +3 -0
- package/dist/src/runner.js +5 -0
- package/dist/src/runner.js.map +1 -1
- package/dist/src/score.js +1 -1
- package/dist/src/score.js.map +1 -1
- package/dist/src/storage.js +3 -2
- package/dist/src/storage.js.map +1 -1
- package/dist/src/telemetry.d.ts +3 -0
- package/dist/src/telemetry.js +17 -1
- package/dist/src/telemetry.js.map +1 -1
- package/dist/src/types.d.ts +1 -1
- package/dist/src/utils/files.d.ts +1 -0
- package/dist/src/utils/files.js +21 -0
- package/dist/src/utils/files.js.map +1 -0
- package/dist/src/utils/ids.js +18 -5
- package/dist/src/utils/ids.js.map +1 -1
- package/dist/src/utils/url.d.ts +2 -0
- package/dist/src/utils/url.js +15 -0
- package/dist/src/utils/url.js.map +1 -0
- package/dist/src/validate.js +1 -1
- package/dist/src/validate.js.map +1 -1
- package/docs/agent-ecosystem-promotion-plan.md +244 -0
- package/docs/agent-tasks.md +95 -0
- package/docs/automatic-ci-integration.md +33 -0
- package/docs/campaign-attribution.md +58 -0
- package/docs/code-scanning-demo.md +57 -0
- package/docs/contributor-proof-cards/README.md +33 -0
- package/docs/contributor-recognition.md +92 -0
- package/docs/feishu-lark-mcp.md +1 -1
- package/docs/github-code-scanning-for-mcp.md +1 -1
- package/docs/launch.md +64 -0
- package/docs/mcp-attack-simulator.md +57 -0
- package/docs/mcp-server-safety-index.md +18 -12
- package/docs/proof.md +5 -2
- package/docs/receipt-graph.md +54 -0
- package/docs/safety-index/artifacts/antv-chart-server.json +21 -21
- package/docs/safety-index/artifacts/antv-chart-server.md +10 -10
- package/docs/safety-index/artifacts/browsermcp-server.json +17 -17
- package/docs/safety-index/artifacts/browsermcp-server.md +10 -10
- package/docs/safety-index/artifacts/context7-server.json +17 -17
- package/docs/safety-index/artifacts/context7-server.md +10 -10
- package/docs/safety-index/artifacts/cyanheads-git-mcp-server.json +2014 -0
- package/docs/safety-index/artifacts/cyanheads-git-mcp-server.md +163 -0
- package/docs/safety-index/artifacts/everything-server.json +131 -56
- package/docs/safety-index/artifacts/everything-server.md +24 -24
- package/docs/safety-index/artifacts/executeautomation-playwright-server.json +26 -18
- package/docs/safety-index/artifacts/executeautomation-playwright-server.md +10 -10
- package/docs/safety-index/artifacts/filesystem-server.json +128 -20
- package/docs/safety-index/artifacts/filesystem-server.md +10 -10
- package/docs/safety-index/artifacts/kubernetes-server.attack.json +1559 -0
- package/docs/safety-index/artifacts/kubernetes-server.attack.md +43 -0
- package/docs/safety-index/artifacts/kubernetes-server.attack.sarif +2857 -0
- package/docs/safety-index/artifacts/kubernetes-server.json +1348 -0
- package/docs/safety-index/artifacts/kubernetes-server.md +150 -0
- package/docs/safety-index/artifacts/memory-server.json +75 -32
- package/docs/safety-index/artifacts/memory-server.md +35 -28
- package/docs/safety-index/artifacts/opentofu-server.json +25 -17
- package/docs/safety-index/artifacts/opentofu-server.md +11 -11
- package/docs/safety-index/artifacts/playwright-mcp-server.json +56 -20
- package/docs/safety-index/artifacts/playwright-mcp-server.md +12 -12
- package/docs/safety-index/artifacts/promptopia-server.json +28 -20
- package/docs/safety-index/artifacts/promptopia-server.md +11 -11
- package/docs/safety-index/artifacts/puppeteer-server.json +42 -30
- package/docs/safety-index/artifacts/puppeteer-server.md +28 -28
- package/docs/safety-index/artifacts/ref-tools-server.json +17 -17
- package/docs/safety-index/artifacts/ref-tools-server.md +9 -9
- package/docs/safety-index/artifacts/sequential-thinking-server.json +20 -21
- package/docs/safety-index/artifacts/sequential-thinking-server.md +10 -10
- package/docs/safety-index/targets.json +90 -14
- package/docs/setup-ci-doctor.md +2 -0
- package/docs/target-gallery.md +49 -0
- package/docs/target-registry.md +5 -1
- package/docs/tool-call-receipts.md +116 -0
- package/package.json +20 -2
- package/schemas/run-artifact.schema.json +1 -0
- package/scripts/postinstall.mjs +123 -0
package/dist/src/validate.js
CHANGED
|
@@ -38,7 +38,7 @@ function requireStatus(value, label) {
|
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
40
|
function requireCheckId(value, label) {
|
|
41
|
-
const ids = new Set(["tools", "prompts", "resources", "tools-invoke", "security", "security-lite", "conformance", "schema-quality"]);
|
|
41
|
+
const ids = new Set(["tools", "prompts", "resources", "tools-invoke", "security", "security-lite", "attack-sim", "conformance", "schema-quality"]);
|
|
42
42
|
if (typeof value !== "string" || !ids.has(value)) {
|
|
43
43
|
throw new Error(`${label} has invalid check id '${String(value)}'.`);
|
|
44
44
|
}
|
package/dist/src/validate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/validate.ts"],"names":[],"mappings":"AAEA,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,aAAa,CAAC,GAA4B,EAAE,KAAa,EAAE,KAAa;IAC/E,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC;IACzB,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpD,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,+BAA+B,KAAK,IAAI,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,YAAY,CAAC,GAA4B,EAAE,KAAa,EAAE,KAAa;IAC9E,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC;IACzB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,+BAA+B,KAAK,wBAAwB,CAAC,CAAC;IACxF,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,cAAc,CAAC,GAA4B,EAAE,KAAa,EAAE,KAAa;IAChF,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC;IACzB,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC1C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACzD,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,IAAI,KAAK,2BAA2B,CAAC,CAAC;IAChE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,aAAa,CAAC,GAA4B,EAAE,KAAa,EAAE,KAAa;IAC/E,MAAM,KAAK,GAAG,cAAc,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IAChD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,+BAA+B,KAAK,IAAI,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,aAAa,CAAC,KAAc,EAAE,KAAa;IAClD,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;IACzF,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QACtD,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,wBAAwB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACrE,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,KAAc,EAAE,KAAa;IACnD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,cAAc,EAAE,UAAU,EAAE,eAAe,EAAE,aAAa,EAAE,gBAAgB,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/validate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,244 @@
|
|
|
1
|
+
# Agent And MCP Ecosystem Promotion Plan
|
|
2
|
+
|
|
3
|
+
Use this plan to turn MCP Observatory visibility into agent installs, CI integrations, maintainer conversations, and MCP company relationships.
|
|
4
|
+
|
|
5
|
+
The campaign position:
|
|
6
|
+
|
|
7
|
+
> Agents should not depend on tools nobody tests.
|
|
8
|
+
|
|
9
|
+
The conversion goal is not raw stars. The goal is more `setup-ci`, SARIF/code-scanning, external CI, and agent-accessible `serve` sessions.
|
|
10
|
+
|
|
11
|
+
## Immediate Moves
|
|
12
|
+
|
|
13
|
+
1. Leave third-party badge PRs open unless the provider has clear public scan evidence and acceptable badge wording.
|
|
14
|
+
2. Claim or refresh directory listings with neutral listing copy, not unreviewed audit claims.
|
|
15
|
+
3. Publish one short agent-first post or thread per week.
|
|
16
|
+
4. Open five small Observatory CI PRs per week against public MCP server repos.
|
|
17
|
+
5. Track whether each surface converts into `test`, `scan`, `setup-ci`, `serve`, or external CI sessions.
|
|
18
|
+
|
|
19
|
+
## MseeP Listing
|
|
20
|
+
|
|
21
|
+
Claim the listing, but do not merge the current badge PR unless the listing exposes reviewed scan evidence and the badge wording is acceptable.
|
|
22
|
+
|
|
23
|
+
Listing URL:
|
|
24
|
+
|
|
25
|
+
`https://mseep.ai/app/kryptosai-mcp-observatory`
|
|
26
|
+
|
|
27
|
+
Claim flow:
|
|
28
|
+
|
|
29
|
+
1. Open the listing.
|
|
30
|
+
2. Click `Claim Ownership`.
|
|
31
|
+
3. Sign in with the GitHub account or organization that controls `KryptosAI/mcp-observatory`.
|
|
32
|
+
4. Confirm the repo URL is `https://github.com/KryptosAI/mcp-observatory`.
|
|
33
|
+
5. Update the listing copy using the text below.
|
|
34
|
+
6. If MseeP shows security/audit metadata, verify the evidence before linking it from project-owned materials.
|
|
35
|
+
|
|
36
|
+
Preferred listing copy:
|
|
37
|
+
|
|
38
|
+
```text
|
|
39
|
+
MCP Observatory is the GitHub-native CI and security gate for MCP servers before agents depend on them.
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
Short description:
|
|
43
|
+
|
|
44
|
+
```text
|
|
45
|
+
CI, SARIF, GitHub Code Scanning, schema drift detection, lock files, reports, and agent-accessible diagnostics for MCP servers.
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
Primary command:
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
npx @kryptosai/mcp-observatory setup-ci --all --command "npx -y <server-package>" --sarif
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
Agent install command:
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
claude mcp add mcp-observatory -- npx -y @kryptosai/mcp-observatory serve
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
Badge policy:
|
|
61
|
+
|
|
62
|
+
- Directory listing: yes.
|
|
63
|
+
- Plain text link: acceptable if the listing is accurate.
|
|
64
|
+
- Badge saying `Audited`, `Certified`, `Verified`, or similar: only after public evidence is reviewed.
|
|
65
|
+
- README placement: keep below first-party CI/npm/license/action signals unless the provider becomes a meaningful trust surface.
|
|
66
|
+
|
|
67
|
+
## Directory Targets
|
|
68
|
+
|
|
69
|
+
Refresh these surfaces first because they are already relevant to MCP users:
|
|
70
|
+
|
|
71
|
+
| Surface | Desired State | CTA |
|
|
72
|
+
| --- | --- | --- |
|
|
73
|
+
| PulseMCP | Claimed/current listing with `server.json` visible | `setup-ci --all` |
|
|
74
|
+
| Smithery | Current install snippet and MCP server mode | `serve` |
|
|
75
|
+
| Glama | Current scorecard and README links | `test` and `serve` |
|
|
76
|
+
| MseeP | Claimed listing with neutral copy | `setup-ci --sarif` |
|
|
77
|
+
| mcpservers.org | Listing present or submitted | `setup-ci --all` |
|
|
78
|
+
| awesome-mcp-servers | Developer tools/security category mention | `setup-ci --all` |
|
|
79
|
+
| agent framework docs/community lists | Agent workflow examples | `serve` |
|
|
80
|
+
| GitHub Action Marketplace | Action example and security framing | `action@v0.27.0` |
|
|
81
|
+
|
|
82
|
+
Submission snippet:
|
|
83
|
+
|
|
84
|
+
```text
|
|
85
|
+
MCP Observatory adds CI, compatibility, schema drift, SARIF/GitHub Code Scanning, and lightweight security checks for MCP servers before agents depend on them.
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
## Agent-First Prompts
|
|
89
|
+
|
|
90
|
+
Use these in docs, posts, issues, and agent community replies.
|
|
91
|
+
|
|
92
|
+
Add CI:
|
|
93
|
+
|
|
94
|
+
```text
|
|
95
|
+
Add MCP Observatory CI to this MCP server. Use a read-only or harmless startup command, enable deep and security checks when safe, and avoid secrets in the workflow.
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
Audit local config:
|
|
99
|
+
|
|
100
|
+
```text
|
|
101
|
+
Run MCP Observatory against my MCP config, summarize startup failures, risky tools, schema issues, and which servers should get CI coverage first.
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
Prepare a safe target:
|
|
105
|
+
|
|
106
|
+
```text
|
|
107
|
+
Create a CI-safe MCP Observatory target config for this MCP server. Prefer harmless fixtures, no tokens, and no write-capable operations.
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
Check drift:
|
|
111
|
+
|
|
112
|
+
```text
|
|
113
|
+
Add an MCP lock file for this server and verify in CI that the tool, prompt, and resource surface does not drift unexpectedly.
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
## MCP Company Targets
|
|
117
|
+
|
|
118
|
+
Start with companies and projects whose users already care about agent reliability:
|
|
119
|
+
|
|
120
|
+
| Target Type | Examples | Ask |
|
|
121
|
+
| --- | --- | --- |
|
|
122
|
+
| MCP directories | PulseMCP, Smithery, Glama, MseeP | Keep listing current; add CI/security category placement |
|
|
123
|
+
| Agent browsers/scrapers | Browserbase, Firecrawl, Exa, BrowserStack | Publish a safe Observatory target or sample workflow |
|
|
124
|
+
| Agent runtimes | Cline, Continue, Goose, Cursor/Windsurf ecosystem | Add Observatory to recommended MCP preflight docs |
|
|
125
|
+
| Dev platform MCPs | Sentry, Notion, Stripe, Cloudflare, GitHub ecosystem | Add optional read-only CI checks or issue-first safe target guidance |
|
|
126
|
+
| Gateways/proxies | MCP gateway and registry projects | Support Observatory reports as compatibility evidence |
|
|
127
|
+
|
|
128
|
+
First outreach message:
|
|
129
|
+
|
|
130
|
+
```md
|
|
131
|
+
Hi, I maintain MCP Observatory, an open source CI/security gate for MCP servers before agents depend on them.
|
|
132
|
+
|
|
133
|
+
I noticed your team is in the MCP ecosystem. Would a small, read-only Observatory target or GitHub Action example be useful for your server/docs?
|
|
134
|
+
|
|
135
|
+
The goal is simple: give agent users a reproducible startup/schema/security check they can run before installing or upgrading an MCP dependency.
|
|
136
|
+
|
|
137
|
+
Command shape:
|
|
138
|
+
|
|
139
|
+
```bash
|
|
140
|
+
npx @kryptosai/mcp-observatory setup-ci --all --command "npx -y <server-package>" --sarif
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
Happy to open a tiny docs PR or start with an issue asking for the safest CI command.
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
## Certification PR Shape
|
|
147
|
+
|
|
148
|
+
Prefer a small, reversible PR:
|
|
149
|
+
|
|
150
|
+
- Adds one workflow or docs snippet.
|
|
151
|
+
- Uses a harmless command or fixture.
|
|
152
|
+
- Does not require secrets.
|
|
153
|
+
- Does not add a third-party badge by default.
|
|
154
|
+
- Sets write permissions only when the maintainer explicitly wants PR comments/statuses.
|
|
155
|
+
- Links to the generated run artifact or safety-index report when available.
|
|
156
|
+
|
|
157
|
+
PR title:
|
|
158
|
+
|
|
159
|
+
```text
|
|
160
|
+
Add optional MCP Observatory CI check
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
PR body:
|
|
164
|
+
|
|
165
|
+
```md
|
|
166
|
+
This adds an optional MCP Observatory workflow so maintainers can verify MCP startup, tool discovery, schema quality, and basic security findings in CI before agents depend on the server.
|
|
167
|
+
|
|
168
|
+
It is intentionally read-only and does not require secrets. If this is useful, maintainers can later opt into PR comments, commit statuses, SARIF upload, or a README badge.
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
## Weekly Operating Loop
|
|
172
|
+
|
|
173
|
+
Run this once per week:
|
|
174
|
+
|
|
175
|
+
1. Refresh metrics:
|
|
176
|
+
|
|
177
|
+
```bash
|
|
178
|
+
npm run metrics:refresh
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
2. Record:
|
|
182
|
+
|
|
183
|
+
- GitHub views/clones
|
|
184
|
+
- npm downloads
|
|
185
|
+
- `serve` sessions
|
|
186
|
+
- `setup-ci` sessions
|
|
187
|
+
- external CI sessions
|
|
188
|
+
- directory referrals when visible
|
|
189
|
+
- accepted/closed certification PRs
|
|
190
|
+
|
|
191
|
+
3. Ship:
|
|
192
|
+
|
|
193
|
+
- 3 refreshed listings
|
|
194
|
+
- 5 certification PRs or maintainer issues
|
|
195
|
+
- 1 short public post
|
|
196
|
+
- 3 company/community replies
|
|
197
|
+
|
|
198
|
+
4. Review conversion after 48 hours.
|
|
199
|
+
|
|
200
|
+
Prioritize the channels that create `setup-ci`, SARIF, or external CI events. Deprioritize channels that only create stars or low-intent clones.
|
|
201
|
+
|
|
202
|
+
## Public Posts
|
|
203
|
+
|
|
204
|
+
Short post:
|
|
205
|
+
|
|
206
|
+
```text
|
|
207
|
+
MCP servers are becoming agent dependencies.
|
|
208
|
+
|
|
209
|
+
Before an agent depends on one, ask:
|
|
210
|
+
|
|
211
|
+
- does it start in CI?
|
|
212
|
+
- did tools or schemas drift?
|
|
213
|
+
- are write/destructive tools obvious?
|
|
214
|
+
- can findings land in GitHub Code Scanning?
|
|
215
|
+
|
|
216
|
+
That is what MCP Observatory is for:
|
|
217
|
+
|
|
218
|
+
npx @kryptosai/mcp-observatory setup-ci --all --command "npx -y <server-package>" --sarif
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
Agent post:
|
|
222
|
+
|
|
223
|
+
```text
|
|
224
|
+
If your coding agent can install MCP servers, it should also be able to test them.
|
|
225
|
+
|
|
226
|
+
MCP Observatory runs as an MCP server, so agents can scan, test, record, replay, diff, and verify other MCP servers before relying on them.
|
|
227
|
+
|
|
228
|
+
claude mcp add mcp-observatory -- npx -y @kryptosai/mcp-observatory serve
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
Company-facing post:
|
|
232
|
+
|
|
233
|
+
```text
|
|
234
|
+
For teams adding MCP to production agent workflows: treat MCP servers like AI supply-chain dependencies.
|
|
235
|
+
|
|
236
|
+
MCP Observatory gives you CI checks, SARIF/GitHub Code Scanning, schema drift, lock files, reports, and agent-accessible diagnostics before tools reach production workflows.
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
## Tracking Hygiene
|
|
240
|
+
|
|
241
|
+
- Use one campaign link or one command per outreach surface.
|
|
242
|
+
- Do not publish private telemetry, emails, hostnames, target commands, private repo names, or customer claims.
|
|
243
|
+
- Treat anonymous stars, forks, and clone spikes as interest, not adoption.
|
|
244
|
+
- Treat external CI, `setup-ci`, SARIF, and maintainer replies as adoption.
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
# Agent Task Pack
|
|
2
|
+
|
|
3
|
+
This page is written for coding agents, bot maintainers, autonomous productivity systems, and maintainers who want small useful MCP Observatory contributions.
|
|
4
|
+
|
|
5
|
+
Useful merged work can receive public credit through [MCP Observatory Contributors](./contributor-recognition.md), [CONTRIBUTORS.md](../CONTRIBUTORS.md), and target proof cards. Recognition is based on merged public evidence, not private telemetry.
|
|
6
|
+
|
|
7
|
+
Rough agentic contribution ideas are welcome too. Use the [Agentic Contributor Outreach](./agentic-contributor-outreach.md) playbook or open an `Agentic contribution idea` issue when a task is promising but not ready for a focused PR.
|
|
8
|
+
|
|
9
|
+
The core standard is a [tool-call receipt](./tool-call-receipts.md): public source, safe startup command, run artifact, attack-sim evidence, SARIF when useful, and a clear capability envelope showing what the run could not access. The public map is the [MCP Receipt Graph](./receipt-graph.md).
|
|
10
|
+
|
|
11
|
+
## Task 1: Add MCP Observatory CI To A Repo
|
|
12
|
+
|
|
13
|
+
```text
|
|
14
|
+
Add MCP Observatory CI for this MCP server.
|
|
15
|
+
|
|
16
|
+
Use the safest no-secret startup command available in the repo. Generate the full adoption kit with SARIF enabled, verify it with setup-ci --doctor, and open a focused PR that explains the check is read-only.
|
|
17
|
+
|
|
18
|
+
Commands:
|
|
19
|
+
npx @kryptosai/mcp-observatory test <safe startup command> --campaign agent-ci
|
|
20
|
+
npx @kryptosai/mcp-observatory setup-ci --all --command "<safe startup command>" --sarif --campaign agent-ci
|
|
21
|
+
npx @kryptosai/mcp-observatory setup-ci --doctor
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## Task 2: Add One Safety Index Target
|
|
25
|
+
|
|
26
|
+
```text
|
|
27
|
+
Add one public MCP server target to MCP Observatory's Safety Index.
|
|
28
|
+
|
|
29
|
+
Requirements:
|
|
30
|
+
- public repo or public package
|
|
31
|
+
- no secrets
|
|
32
|
+
- no paid service dependency
|
|
33
|
+
- safe startup command
|
|
34
|
+
- generated JSON and Markdown evidence
|
|
35
|
+
- attack-sim evidence or a note explaining why attack-sim is not applicable
|
|
36
|
+
- maintainer-friendly wording
|
|
37
|
+
|
|
38
|
+
Use docs/target-contribution-guide.md and docs/target-registry.md.
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## Task 3: Generate SARIF For A Maintainer
|
|
42
|
+
|
|
43
|
+
```text
|
|
44
|
+
Run MCP Observatory against this MCP server and produce a SARIF artifact suitable for GitHub Code Scanning.
|
|
45
|
+
|
|
46
|
+
Command:
|
|
47
|
+
npx @kryptosai/mcp-observatory test <safe startup command> --sarif mcp-observatory.sarif --campaign agent-sarif
|
|
48
|
+
|
|
49
|
+
Summarize only the normalized findings and avoid publishing private telemetry, hostnames, tokens, or local paths beyond generated artifact paths.
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## Task 4: Open A Useful Maintainer PR
|
|
53
|
+
|
|
54
|
+
```text
|
|
55
|
+
Open a small PR that adds read-only MCP Observatory checks.
|
|
56
|
+
|
|
57
|
+
Do:
|
|
58
|
+
- keep the PR focused on CI and evidence
|
|
59
|
+
- pin the action ref
|
|
60
|
+
- include setup-ci --doctor output
|
|
61
|
+
- say findings are review prompts, not public shaming
|
|
62
|
+
|
|
63
|
+
Do not:
|
|
64
|
+
- require private credentials
|
|
65
|
+
- add destructive tool calls
|
|
66
|
+
- include private telemetry
|
|
67
|
+
- change unrelated project code
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
## Task 5: Evaluate A Bot Runtime
|
|
71
|
+
|
|
72
|
+
```text
|
|
73
|
+
Find the MCP servers this agent or bot runtime depends on. For each server, identify a no-secret startup command, run MCP Observatory, and report whether the server is ready for CI, needs review before production, or is not reproducible.
|
|
74
|
+
|
|
75
|
+
Use:
|
|
76
|
+
npx @kryptosai/mcp-observatory test <safe startup command> --campaign bot-runtime-review
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
## Task 6: Prepare A Contributor Proof Card
|
|
80
|
+
|
|
81
|
+
```text
|
|
82
|
+
After a target, CI integration, or SARIF improvement is merged, prepare a public proof card.
|
|
83
|
+
|
|
84
|
+
Use docs/contributor-proof-cards/README.md.
|
|
85
|
+
|
|
86
|
+
Include:
|
|
87
|
+
- contributor GitHub profile
|
|
88
|
+
- role
|
|
89
|
+
- merged PR
|
|
90
|
+
- generated artifact or upstream workflow
|
|
91
|
+
- verdict
|
|
92
|
+
- Observatory version
|
|
93
|
+
|
|
94
|
+
Do not include private telemetry, local paths, secrets, or unpublished maintainer data.
|
|
95
|
+
```
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# Automatic CI Integration
|
|
2
|
+
|
|
3
|
+
MCP Observatory includes an install-time CI helper for MCP server projects.
|
|
4
|
+
|
|
5
|
+
By default, the helper is safe and non-mutating: when it detects a likely MCP project, it prints the exact `setup-ci` command to add GitHub Actions. It does not create files unless the project explicitly opts in.
|
|
6
|
+
|
|
7
|
+
To let installs create the workflow automatically, add this to the MCP server project's `package.json`:
|
|
8
|
+
|
|
9
|
+
```json
|
|
10
|
+
{
|
|
11
|
+
"mcpObservatory": {
|
|
12
|
+
"autoSetupCi": true,
|
|
13
|
+
"command": "npm run mcp",
|
|
14
|
+
"sarif": true
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
Then installing MCP Observatory creates `.github/workflows/mcp-observatory.yml` if it does not already exist:
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
npm install -D @kryptosai/mcp-observatory
|
|
23
|
+
npx @kryptosai/mcp-observatory setup-ci --doctor
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Environment controls:
|
|
27
|
+
|
|
28
|
+
- `MCP_OBSERVATORY_AUTO_SETUP_CI=1` creates CI during install for detected MCP projects.
|
|
29
|
+
- `MCP_OBSERVATORY_TARGET_COMMAND="npm run mcp"` provides the startup command.
|
|
30
|
+
- `MCP_OBSERVATORY_AUTO_SETUP_SARIF=1` enables SARIF upload in the generated workflow.
|
|
31
|
+
- `MCP_OBSERVATORY_POSTINSTALL=0` or `MCP_OBSERVATORY_DISABLE_POSTINSTALL=1` disables the helper.
|
|
32
|
+
|
|
33
|
+
The helper skips CI environments and skips MCP Observatory's own repository. Existing workflows are never overwritten.
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# Campaign Attribution
|
|
2
|
+
|
|
3
|
+
Campaign attribution helps the maintainer understand which launch, maintainer, bot, or paid-readiness paths lead to real MCP Observatory usage.
|
|
4
|
+
|
|
5
|
+
Telemetry remains opt-out and private to the project owner. Campaign values are safe slugs only and are not written into public reports, SARIF artifacts, or generated adoption kit files.
|
|
6
|
+
|
|
7
|
+
## CLI Flag
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
npx @kryptosai/mcp-observatory test npx -y my-mcp-server --campaign maintainer-pr
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
The flag is supported by:
|
|
14
|
+
|
|
15
|
+
- `test`
|
|
16
|
+
- `scan`
|
|
17
|
+
- `scan deep`
|
|
18
|
+
- `run`
|
|
19
|
+
- `setup-ci`
|
|
20
|
+
- `init-ci`
|
|
21
|
+
|
|
22
|
+
For `test`, `--campaign` can appear after the MCP command and is stripped before launching the target server.
|
|
23
|
+
|
|
24
|
+
## Environment Variable
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
MCP_OBSERVATORY_CAMPAIGN=bot-runtime-review npx @kryptosai/mcp-observatory scan
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Use the environment variable when a bot, CI workflow, or documentation snippet cannot safely add another CLI flag.
|
|
31
|
+
|
|
32
|
+
## Slug Rules
|
|
33
|
+
|
|
34
|
+
Campaign slugs must be 2-64 characters and use only:
|
|
35
|
+
|
|
36
|
+
- letters
|
|
37
|
+
- numbers
|
|
38
|
+
- `.`
|
|
39
|
+
- `_`
|
|
40
|
+
- `-`
|
|
41
|
+
|
|
42
|
+
Examples:
|
|
43
|
+
|
|
44
|
+
- `maintainer-pr`
|
|
45
|
+
- `code-scanning-demo`
|
|
46
|
+
- `agent-ci`
|
|
47
|
+
- `paid-readiness`
|
|
48
|
+
|
|
49
|
+
## Suggested Campaigns
|
|
50
|
+
|
|
51
|
+
| Campaign | Use |
|
|
52
|
+
| --- | --- |
|
|
53
|
+
| `maintainer-pr` | Read-only CI PRs to existing MCP projects |
|
|
54
|
+
| `code-scanning-demo` | SARIF and GitHub Code Scanning launch snippets |
|
|
55
|
+
| `agent-ci` | Bot or coding-agent generated CI adoption |
|
|
56
|
+
| `safety-index` | Target Gallery and Safety Index contribution flow |
|
|
57
|
+
| `paid-readiness` | MCP Readiness Review CTA |
|
|
58
|
+
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# GitHub Code Scanning Demo
|
|
2
|
+
|
|
3
|
+
Use this page when a maintainer or agent asks, "What does MCP Observatory actually add to my repo?"
|
|
4
|
+
|
|
5
|
+
## One-Command Local Demo
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npx @kryptosai/mcp-observatory test npx -y @modelcontextprotocol/server-everything --sarif mcp-observatory.sarif --campaign code-scanning-demo
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
Expected result:
|
|
12
|
+
|
|
13
|
+
- normal terminal output still appears
|
|
14
|
+
- `.mcp-observatory/runs/` receives a run artifact
|
|
15
|
+
- `mcp-observatory.sarif` contains normalized MCP findings
|
|
16
|
+
- the command exits the same way it would without `--sarif`
|
|
17
|
+
|
|
18
|
+
## Turn It Into A GitHub Release Gate
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
npx @kryptosai/mcp-observatory setup-ci --all --command "npx -y @modelcontextprotocol/server-everything" --sarif --campaign code-scanning-demo
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
Then verify:
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
npx @kryptosai/mcp-observatory setup-ci --doctor
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
The generated workflow requests `security-events: write` only when `--sarif` is used. Standard `setup-ci` stays conservative and does not upload SARIF by default.
|
|
31
|
+
|
|
32
|
+
## What Code Scanning Gets
|
|
33
|
+
|
|
34
|
+
MCP Observatory emits one SARIF result per normalized finding. Results include:
|
|
35
|
+
|
|
36
|
+
- stable rule IDs
|
|
37
|
+
- severity mapping
|
|
38
|
+
- target/check properties
|
|
39
|
+
- lightweight control tags
|
|
40
|
+
- partial fingerprints
|
|
41
|
+
- artifact locations that point back to the Observatory run evidence
|
|
42
|
+
|
|
43
|
+
Passing artifacts with no findings still produce valid empty SARIF.
|
|
44
|
+
|
|
45
|
+
## Maintainer PR Snippet
|
|
46
|
+
|
|
47
|
+
~~~markdown
|
|
48
|
+
This adds a read-only MCP Observatory CI gate for the server.
|
|
49
|
+
|
|
50
|
+
It checks startup, MCP capability listing, schema quality, and security-oriented findings. The SARIF path is enabled so normalized MCP findings can appear in GitHub Code Scanning.
|
|
51
|
+
|
|
52
|
+
Verification:
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
npx @kryptosai/mcp-observatory setup-ci --doctor
|
|
56
|
+
```
|
|
57
|
+
~~~
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# Contributor Proof Cards
|
|
2
|
+
|
|
3
|
+
Contributor proof cards are small Markdown records for accepted MCP Observatory contributions. They are designed to be linked from the contributor page, target gallery, GitHub profile badges, and maintainer PRs.
|
|
4
|
+
|
|
5
|
+
Each proof card must point to public proof only: a merged PR, generated Safety Index artifact, public report, upstream workflow, or maintainer-visible issue. Do not include private telemetry, secrets, local paths, unpublished maintainer data, or private repo details.
|
|
6
|
+
|
|
7
|
+
## Proof Card Template
|
|
8
|
+
|
|
9
|
+
Copy this template into a new file named after the target or contribution:
|
|
10
|
+
|
|
11
|
+
```md
|
|
12
|
+
# MCP Observatory Proof: <target or contribution name>
|
|
13
|
+
|
|
14
|
+
| Field | Value |
|
|
15
|
+
| --- | --- |
|
|
16
|
+
| Contributor | [@username](https://github.com/username) |
|
|
17
|
+
| Role | Target Verifier |
|
|
18
|
+
| Target | Example MCP Server |
|
|
19
|
+
| Date | YYYY-MM-DD |
|
|
20
|
+
| Observatory Version | v0.27.0 or later |
|
|
21
|
+
| Verdict | Ready for CI / Needs maintainer review / Not reproducible yet |
|
|
22
|
+
| Merged PR | https://github.com/KryptosAI/mcp-observatory/pull/000 |
|
|
23
|
+
| Generated Evidence | docs/safety-index/artifacts/example-server.md |
|
|
24
|
+
| Public Report | docs/mcp-server-safety-index.md |
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## Badge Link Pattern
|
|
28
|
+
|
|
29
|
+
After the proof card is merged, contributors can link a badge directly to the proof card:
|
|
30
|
+
|
|
31
|
+
```md
|
|
32
|
+
[](https://github.com/KryptosAI/mcp-observatory/blob/main/docs/contributor-proof-cards/example-server.md)
|
|
33
|
+
```
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
# MCP Observatory Contributors
|
|
2
|
+
|
|
3
|
+
MCP Observatory recognizes useful public evidence, not vanity activity. A good contribution helps maintainers and agents trust one more MCP server: a safe startup command, a reproducible target, a CI adoption PR, a SARIF/Code Scanning improvement, a review, or a better agent prompt.
|
|
4
|
+
|
|
5
|
+
Official GitHub profile achievements are platform-controlled; this project does not award them. The project-level substitute is public proof: contributor roles, All Contributors credit, proof cards, recognition links, and links to merged PRs or generated artifacts.
|
|
6
|
+
|
|
7
|
+
## Recognition Roles
|
|
8
|
+
|
|
9
|
+
| Role | What Counts | Public Proof |
|
|
10
|
+
| --- | --- | --- |
|
|
11
|
+
| Target Scout | Finds a public MCP server with a no-secret, non-destructive startup command | Issue, PR, or target suggestion linked to the command |
|
|
12
|
+
| Target Verifier | Adds a Safety Index target and generated evidence | Merged PR plus JSON/Markdown artifacts |
|
|
13
|
+
| CI Integrator | Adds Observatory CI, `setup-ci --doctor`, or SARIF upload to a repo | Upstream PR, workflow file, or adoption artifact |
|
|
14
|
+
| SARIF Fixer | Improves normalized findings, GitHub Code Scanning output, or docs that help a maintainer reproduce SARIF | Merged PR, SARIF sample, or Code Scanning demo artifact |
|
|
15
|
+
| Maintainer Partner | Confirms safe startup behavior, reviews evidence, or accepts an integration PR for their MCP server | Maintainer comment, merged upstream PR, or issue acceptance |
|
|
16
|
+
| Docs/Agent Prompt Contributor | Improves docs, `llms.txt`, `AGENTS.md`, or copy-paste tasks agents can run safely | Merged docs PR or prompt artifact |
|
|
17
|
+
|
|
18
|
+
## Contribution Ladder
|
|
19
|
+
|
|
20
|
+
| Level | Name | How To Earn It | Typical Reward |
|
|
21
|
+
| --- | --- | --- | --- |
|
|
22
|
+
| 1 | Target Scout | Submit one safe startup command for a public MCP server | Role mention and badge snippet |
|
|
23
|
+
| 2 | Target Verifier | Add a target PR with generated Safety Index evidence | Proof card and All Contributors credit |
|
|
24
|
+
| 3 | CI Integrator | Help an upstream repo add Observatory CI/SARIF | CI Integrator badge and proof link |
|
|
25
|
+
| 4 | Maintainer Partner | Help another maintainer review, merge, or tune adoption | Maintainer Partner role and proof card |
|
|
26
|
+
| 5 | Ecosystem Maintainer | Repeatedly help targets, docs, reviews, or agent tasks stay current | Featured recognition on this page |
|
|
27
|
+
|
|
28
|
+
## What One Target PR Gets You
|
|
29
|
+
|
|
30
|
+
One merged target PR may result in after maintainer review:
|
|
31
|
+
|
|
32
|
+
- an All Contributors entry in [CONTRIBUTORS.md](../CONTRIBUTORS.md)
|
|
33
|
+
- a role on this page
|
|
34
|
+
- a proof card under [`docs/contributor-proof-cards/`](./contributor-proof-cards/)
|
|
35
|
+
- a badge snippet you can place in your GitHub profile or project README
|
|
36
|
+
- links to the merged PR and generated public evidence
|
|
37
|
+
|
|
38
|
+
Recognition links to public proof only. Do not include private telemetry, local machine paths, secrets, unpublished maintainer data, or private repo details.
|
|
39
|
+
|
|
40
|
+
## Badge Snippets
|
|
41
|
+
|
|
42
|
+
Replace the link target with the merged proof card or PR for your contribution.
|
|
43
|
+
|
|
44
|
+
### Target Scout
|
|
45
|
+
|
|
46
|
+
```md
|
|
47
|
+
[](https://github.com/KryptosAI/mcp-observatory/blob/main/docs/contributor-proof-cards/README.md)
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### Safety Index Contributor
|
|
51
|
+
|
|
52
|
+
```md
|
|
53
|
+
[](https://github.com/KryptosAI/mcp-observatory/blob/main/docs/contributor-proof-cards/README.md)
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### CI Integrator
|
|
57
|
+
|
|
58
|
+
```md
|
|
59
|
+
[](https://github.com/KryptosAI/mcp-observatory/blob/main/docs/contributor-proof-cards/README.md)
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### Maintainer Partner
|
|
63
|
+
|
|
64
|
+
```md
|
|
65
|
+
[](https://github.com/KryptosAI/mcp-observatory/blob/main/docs/contributor-proof-cards/README.md)
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
## Current Recognition
|
|
69
|
+
|
|
70
|
+
| Contributor | Role | Public Proof |
|
|
71
|
+
| --- | --- | --- |
|
|
72
|
+
| [William Weishuhn](https://github.com/KryptosAI) | Founding maintainer, CI Integrator, SARIF Fixer, Docs/Agent Prompt Contributor | [All Contributors entry](../CONTRIBUTORS.md), [Code Scanning demo](./code-scanning-demo.md), [Agent Task Pack](./agent-tasks.md) |
|
|
73
|
+
|
|
74
|
+
External contributors are added after a merged PR, an accepted target artifact, or maintainer-confirmed upstream adoption.
|
|
75
|
+
|
|
76
|
+
## Request Credit
|
|
77
|
+
|
|
78
|
+
For bot-assisted recognition, comment on the merged PR or issue:
|
|
79
|
+
|
|
80
|
+
```text
|
|
81
|
+
@all-contributors please add @username for code, doc, test, ideas, review
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
For Observatory-specific recognition, include:
|
|
85
|
+
|
|
86
|
+
- GitHub username
|
|
87
|
+
- contribution role
|
|
88
|
+
- merged PR or accepted issue
|
|
89
|
+
- generated artifact or proof-card link
|
|
90
|
+
- badge type requested
|
|
91
|
+
|
|
92
|
+
Useful contributions are evidence-first. Spammy issues, vanity stars, and unsafe target commands do not count.
|
package/docs/feishu-lark-mcp.md
CHANGED