@kryptosai/mcp-observatory 1.32.1 → 1.34.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 +11 -122
- package/dist/src/auth.d.ts +22 -0
- package/dist/src/auth.js +140 -0
- package/dist/src/auth.js.map +1 -0
- package/dist/src/cli.js +55 -4
- package/dist/src/cli.js.map +1 -1
- package/dist/src/commands/audit.js +7 -1
- package/dist/src/commands/audit.js.map +1 -1
- package/dist/src/commands/demo.d.ts +2 -0
- package/dist/src/commands/demo.js +247 -0
- package/dist/src/commands/demo.js.map +1 -0
- package/dist/src/commands/enforce.js +14 -3
- package/dist/src/commands/enforce.js.map +1 -1
- package/dist/src/commands/helpers.d.ts +13 -0
- package/dist/src/commands/helpers.js +34 -1
- package/dist/src/commands/helpers.js.map +1 -1
- package/dist/src/commands/init-ci.d.ts +1 -0
- package/dist/src/commands/init-ci.js +157 -10
- package/dist/src/commands/init-ci.js.map +1 -1
- package/dist/src/commands/receipt.js +13 -3
- package/dist/src/commands/receipt.js.map +1 -1
- package/dist/src/commands/scan.d.ts +14 -0
- package/dist/src/commands/scan.js +51 -3
- package/dist/src/commands/scan.js.map +1 -1
- package/dist/src/commands/score.js +22 -1
- package/dist/src/commands/score.js.map +1 -1
- package/dist/src/commands/setup-ci-conversion.js +4 -4
- package/dist/src/commands/setup-ci-conversion.js.map +1 -1
- package/dist/src/commands/skill-scan.js +5 -3
- package/dist/src/commands/skill-scan.js.map +1 -1
- package/dist/src/commands/test.d.ts +19 -0
- package/dist/src/commands/test.js +77 -3
- package/dist/src/commands/test.js.map +1 -1
- package/dist/src/commercial.d.ts +3 -0
- package/dist/src/commercial.js +14 -3
- package/dist/src/commercial.js.map +1 -1
- package/dist/src/index.d.ts +1 -1
- package/dist/src/index.js +1 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/receipt.d.ts +9 -0
- package/dist/src/receipt.js +24 -1
- package/dist/src/receipt.js.map +1 -1
- package/dist/src/telemetry.d.ts +25 -3
- package/dist/src/telemetry.js +88 -19
- package/dist/src/telemetry.js.map +1 -1
- package/dist/src/utils/failure-diagnosis.d.ts +7 -0
- package/dist/src/utils/failure-diagnosis.js +14 -0
- package/dist/src/utils/failure-diagnosis.js.map +1 -1
- package/docs/mcp-server-safety-index.md +255 -6
- package/docs/safety-index/artifacts/1link-mcp.json +66 -0
- package/docs/safety-index/artifacts/1link-mcp.md +106 -0
- package/docs/safety-index/artifacts/aadhaar-mcp.json +66 -0
- package/docs/safety-index/artifacts/aadhaar-mcp.md +106 -0
- package/docs/safety-index/artifacts/aikidosec-mcp-server.json +536 -0
- package/docs/safety-index/artifacts/aikidosec-mcp-server.md +203 -0
- package/docs/safety-index/artifacts/aiou-mcp.json +66 -0
- package/docs/safety-index/artifacts/aiou-mcp.md +106 -0
- package/docs/safety-index/artifacts/airtable-mcp-server.json +66 -0
- package/docs/safety-index/artifacts/airtable-mcp-server.md +106 -0
- package/docs/safety-index/artifacts/alpaca-server.json +66 -0
- package/docs/safety-index/artifacts/alpaca-server.md +106 -0
- package/docs/safety-index/artifacts/antv-chart-server.json +21 -21
- package/docs/safety-index/artifacts/antv-chart-server.md +11 -11
- package/docs/safety-index/artifacts/apify-mcp-server.json +66 -0
- package/docs/safety-index/artifacts/apify-mcp-server.md +103 -0
- package/docs/safety-index/artifacts/apple-music-server.json +66 -0
- package/docs/safety-index/artifacts/apple-music-server.md +102 -0
- package/docs/safety-index/artifacts/appwrite-mcp.json +66 -0
- package/docs/safety-index/artifacts/appwrite-mcp.md +106 -0
- package/docs/safety-index/artifacts/aqi-india-mcp.json +66 -0
- package/docs/safety-index/artifacts/aqi-india-mcp.md +106 -0
- package/docs/safety-index/artifacts/argocd-mcp-server.json +66 -0
- package/docs/safety-index/artifacts/argocd-mcp-server.md +106 -0
- package/docs/safety-index/artifacts/arxiv-mcp-server.json +66 -0
- package/docs/safety-index/artifacts/arxiv-mcp-server.md +100 -0
- package/docs/safety-index/artifacts/aws-mcp-server.json +66 -0
- package/docs/safety-index/artifacts/aws-mcp-server.md +103 -0
- package/docs/safety-index/artifacts/azure-devops-mcp-server.json +66 -0
- package/docs/safety-index/artifacts/azure-devops-mcp-server.md +106 -0
- package/docs/safety-index/artifacts/azure-mcp-server.json +66 -0
- package/docs/safety-index/artifacts/azure-mcp-server.md +102 -0
- package/docs/safety-index/artifacts/bhuvan-mcp.json +66 -0
- package/docs/safety-index/artifacts/bhuvan-mcp.md +106 -0
- package/docs/safety-index/artifacts/brave-search-mcp-server-v2.json +66 -0
- package/docs/safety-index/artifacts/brave-search-mcp-server-v2.md +103 -0
- package/docs/safety-index/artifacts/brave-search-server.json +18 -18
- package/docs/safety-index/artifacts/brave-search-server.md +6 -6
- package/docs/safety-index/artifacts/browsermcp-server.json +18 -18
- package/docs/safety-index/artifacts/browsermcp-server.md +9 -9
- package/docs/safety-index/artifacts/cal-com-mcp.json +66 -0
- package/docs/safety-index/artifacts/cal-com-mcp.md +106 -0
- package/docs/safety-index/artifacts/canvas-server.json +66 -0
- package/docs/safety-index/artifacts/canvas-server.md +105 -0
- package/docs/safety-index/artifacts/caselaw-server.json +66 -0
- package/docs/safety-index/artifacts/caselaw-server.md +106 -0
- package/docs/safety-index/artifacts/chatwoot-mcp.json +66 -0
- package/docs/safety-index/artifacts/chatwoot-mcp.md +102 -0
- package/docs/safety-index/artifacts/chrome-devtools-mcp-server.json +23 -23
- package/docs/safety-index/artifacts/chrome-devtools-mcp-server.md +12 -12
- package/docs/safety-index/artifacts/circleci-server.json +1606 -0
- package/docs/safety-index/artifacts/circleci-server.md +243 -0
- package/docs/safety-index/artifacts/clarity-server.json +794 -0
- package/docs/safety-index/artifacts/clarity-server.md +201 -0
- package/docs/safety-index/artifacts/clay-server.json +4 -4
- package/docs/safety-index/artifacts/clay-server.md +3 -3
- package/docs/safety-index/artifacts/clickup-mcp-server.json +66 -0
- package/docs/safety-index/artifacts/clickup-mcp-server.md +106 -0
- package/docs/safety-index/artifacts/cloudflare-mcp-server-v2.json +66 -0
- package/docs/safety-index/artifacts/cloudflare-mcp-server-v2.md +102 -0
- package/docs/safety-index/artifacts/cloudflare-server.json +4 -4
- package/docs/safety-index/artifacts/cloudflare-server.md +4 -4
- package/docs/safety-index/artifacts/coinbase-cds-server.json +322 -0
- package/docs/safety-index/artifacts/coinbase-cds-server.md +201 -0
- package/docs/safety-index/artifacts/confluence-mcp-server.json +1727 -0
- package/docs/safety-index/artifacts/confluence-mcp-server.md +255 -0
- package/docs/safety-index/artifacts/context7-server.json +18 -18
- package/docs/safety-index/artifacts/context7-server.md +12 -12
- package/docs/safety-index/artifacts/contract-analysis-server.json +66 -0
- package/docs/safety-index/artifacts/contract-analysis-server.md +106 -0
- package/docs/safety-index/artifacts/cowin-mcp.json +66 -0
- package/docs/safety-index/artifacts/cowin-mcp.md +106 -0
- package/docs/safety-index/artifacts/currents-mcp-server.json +66 -0
- package/docs/safety-index/artifacts/currents-mcp-server.md +102 -0
- package/docs/safety-index/artifacts/cyanheads-git-mcp-server.json +34 -34
- package/docs/safety-index/artifacts/cyanheads-git-mcp-server.md +15 -15
- package/docs/safety-index/artifacts/dalle-server.json +66 -0
- package/docs/safety-index/artifacts/dalle-server.md +104 -0
- package/docs/safety-index/artifacts/daraz-mcp.json +66 -0
- package/docs/safety-index/artifacts/daraz-mcp.md +106 -0
- package/docs/safety-index/artifacts/desktop-commander-mcp-server.json +2348 -0
- package/docs/safety-index/artifacts/desktop-commander-mcp-server.md +266 -0
- package/docs/safety-index/artifacts/digilocker-mcp.json +66 -0
- package/docs/safety-index/artifacts/digilocker-mcp.md +106 -0
- package/docs/safety-index/artifacts/discord-mcp-server.json +1297 -0
- package/docs/safety-index/artifacts/discord-mcp-server.md +169 -0
- package/docs/safety-index/artifacts/discord-mcp.json +1023 -0
- package/docs/safety-index/artifacts/discord-mcp.md +229 -0
- package/docs/safety-index/artifacts/docker-server.json +19 -19
- package/docs/safety-index/artifacts/docker-server.md +8 -8
- package/docs/safety-index/artifacts/dynamodb-mcp-server.json +66 -0
- package/docs/safety-index/artifacts/dynamodb-mcp-server.md +103 -0
- package/docs/safety-index/artifacts/dynatrace-mcp-server.json +66 -0
- package/docs/safety-index/artifacts/dynatrace-mcp-server.md +103 -0
- package/docs/safety-index/artifacts/easypaisa-mcp.json +553 -0
- package/docs/safety-index/artifacts/easypaisa-mcp.md +205 -0
- package/docs/safety-index/artifacts/ehsaas-mcp.json +66 -0
- package/docs/safety-index/artifacts/ehsaas-mcp.md +106 -0
- package/docs/safety-index/artifacts/epic-server.json +66 -0
- package/docs/safety-index/artifacts/epic-server.md +106 -0
- package/docs/safety-index/artifacts/eslint-mcp-server.json +320 -0
- package/docs/safety-index/artifacts/eslint-mcp-server.md +201 -0
- package/docs/safety-index/artifacts/espn-server.json +394 -0
- package/docs/safety-index/artifacts/espn-server.md +187 -0
- package/docs/safety-index/artifacts/everything-server.json +18 -18
- package/docs/safety-index/artifacts/everything-server.md +12 -12
- package/docs/safety-index/artifacts/exa-server.json +22 -22
- package/docs/safety-index/artifacts/exa-server.md +14 -14
- package/docs/safety-index/artifacts/executeautomation-playwright-server.json +19 -19
- package/docs/safety-index/artifacts/executeautomation-playwright-server.md +11 -11
- package/docs/safety-index/artifacts/fbr-mcp.json +66 -0
- package/docs/safety-index/artifacts/fbr-mcp.md +106 -0
- package/docs/safety-index/artifacts/fetch-server.json +4 -4
- package/docs/safety-index/artifacts/fetch-server.md +3 -3
- package/docs/safety-index/artifacts/fhir-server.json +66 -0
- package/docs/safety-index/artifacts/fhir-server.md +100 -0
- package/docs/safety-index/artifacts/figma-server.json +18 -18
- package/docs/safety-index/artifacts/figma-server.md +10 -10
- package/docs/safety-index/artifacts/filesystem-mcp-server.json +18 -18
- package/docs/safety-index/artifacts/filesystem-mcp-server.md +10 -10
- package/docs/safety-index/artifacts/filesystem-server.json +19 -19
- package/docs/safety-index/artifacts/filesystem-server.md +11 -11
- package/docs/safety-index/artifacts/firecrawl-server.json +18 -18
- package/docs/safety-index/artifacts/firecrawl-server.md +10 -10
- package/docs/safety-index/artifacts/flight-server.json +66 -0
- package/docs/safety-index/artifacts/flight-server.md +106 -0
- package/docs/safety-index/artifacts/foodpanda-pakistan-mcp.json +66 -0
- package/docs/safety-index/artifacts/foodpanda-pakistan-mcp.md +106 -0
- package/docs/safety-index/artifacts/gcp-mcp-server.json +66 -0
- package/docs/safety-index/artifacts/gcp-mcp-server.md +103 -0
- package/docs/safety-index/artifacts/github-mcp-server.json +18 -18
- package/docs/safety-index/artifacts/github-mcp-server.md +10 -10
- package/docs/safety-index/artifacts/gitlab-server.json +16 -16
- package/docs/safety-index/artifacts/gitlab-server.md +6 -6
- package/docs/safety-index/artifacts/gmail-server.json +4 -4
- package/docs/safety-index/artifacts/gmail-server.md +3 -3
- package/docs/safety-index/artifacts/google-calendar-server.json +4 -4
- package/docs/safety-index/artifacts/google-calendar-server.md +3 -3
- package/docs/safety-index/artifacts/google-drive-server.json +4 -4
- package/docs/safety-index/artifacts/google-drive-server.md +4 -4
- package/docs/safety-index/artifacts/google-sheets-server.json +4 -4
- package/docs/safety-index/artifacts/google-sheets-server.md +3 -3
- package/docs/safety-index/artifacts/google-tasks-server.json +4 -4
- package/docs/safety-index/artifacts/google-tasks-server.md +3 -3
- package/docs/safety-index/artifacts/gst-mcp.json +66 -0
- package/docs/safety-index/artifacts/gst-mcp.md +106 -0
- package/docs/safety-index/artifacts/gupshup-mcp.json +66 -0
- package/docs/safety-index/artifacts/gupshup-mcp.md +106 -0
- package/docs/safety-index/artifacts/hasura-mcp.json +66 -0
- package/docs/safety-index/artifacts/hasura-mcp.md +106 -0
- package/docs/safety-index/artifacts/healthcare-ayushman-bharat-mcp.json +66 -0
- package/docs/safety-index/artifacts/healthcare-ayushman-bharat-mcp.md +106 -0
- package/docs/safety-index/artifacts/hec-pakistan-mcp.json +66 -0
- package/docs/safety-index/artifacts/hec-pakistan-mcp.md +106 -0
- package/docs/safety-index/artifacts/heroku-server.json +1502 -0
- package/docs/safety-index/artifacts/heroku-server.md +236 -0
- package/docs/safety-index/artifacts/homekit-server.json +66 -0
- package/docs/safety-index/artifacts/homekit-server.md +106 -0
- package/docs/safety-index/artifacts/hotel-booking-server.json +66 -0
- package/docs/safety-index/artifacts/hotel-booking-server.md +106 -0
- package/docs/safety-index/artifacts/hubspot-mcp-server.json +66 -0
- package/docs/safety-index/artifacts/hubspot-mcp-server.md +106 -0
- package/docs/safety-index/artifacts/huggingface-server.json +4 -4
- package/docs/safety-index/artifacts/huggingface-server.md +3 -3
- package/docs/safety-index/artifacts/indian-food-nutrition-mcp.json +663 -0
- package/docs/safety-index/artifacts/indian-food-nutrition-mcp.md +211 -0
- package/docs/safety-index/artifacts/irctc-mcp.json +66 -0
- package/docs/safety-index/artifacts/irctc-mcp.md +106 -0
- package/docs/safety-index/artifacts/jazz-mcp.json +66 -0
- package/docs/safety-index/artifacts/jazz-mcp.md +106 -0
- package/docs/safety-index/artifacts/jazzcash-mcp.json +66 -0
- package/docs/safety-index/artifacts/jazzcash-mcp.md +102 -0
- package/docs/safety-index/artifacts/jina-server.json +4 -4
- package/docs/safety-index/artifacts/jina-server.md +3 -3
- package/docs/safety-index/artifacts/jira-mcp-server.json +66 -0
- package/docs/safety-index/artifacts/jira-mcp-server.md +104 -0
- package/docs/safety-index/artifacts/k2-mcp.json +66 -0
- package/docs/safety-index/artifacts/k2-mcp.md +106 -0
- package/docs/safety-index/artifacts/karachi-stock-exchange-mcp.json +67 -0
- package/docs/safety-index/artifacts/karachi-stock-exchange-mcp.md +114 -0
- package/docs/safety-index/artifacts/khan-academy-server.json +66 -0
- package/docs/safety-index/artifacts/khan-academy-server.md +106 -0
- package/docs/safety-index/artifacts/kubernetes-server.json +104 -34
- package/docs/safety-index/artifacts/kubernetes-server.md +25 -21
- package/docs/safety-index/artifacts/langfuse-mcp.json +66 -0
- package/docs/safety-index/artifacts/langfuse-mcp.md +106 -0
- package/docs/safety-index/artifacts/linear-server.json +18 -18
- package/docs/safety-index/artifacts/linear-server.md +8 -8
- package/docs/safety-index/artifacts/mapmyindia-mcp.json +66 -0
- package/docs/safety-index/artifacts/mapmyindia-mcp.md +106 -0
- package/docs/safety-index/artifacts/memory-server.json +18 -18
- package/docs/safety-index/artifacts/memory-server.md +11 -11
- package/docs/safety-index/artifacts/minecraft-server.json +592 -0
- package/docs/safety-index/artifacts/minecraft-server.md +186 -0
- package/docs/safety-index/artifacts/mls-server.json +66 -0
- package/docs/safety-index/artifacts/mls-server.md +106 -0
- package/docs/safety-index/artifacts/mongodb-server.json +4 -4
- package/docs/safety-index/artifacts/mongodb-server.md +4 -4
- package/docs/safety-index/artifacts/mui-mcp-server.json +419 -0
- package/docs/safety-index/artifacts/mui-mcp-server.md +208 -0
- package/docs/safety-index/artifacts/mysql-mcp-server.json +66 -0
- package/docs/safety-index/artifacts/mysql-mcp-server.md +106 -0
- package/docs/safety-index/artifacts/nadra-mcp.json +66 -0
- package/docs/safety-index/artifacts/nadra-mcp.md +106 -0
- package/docs/safety-index/artifacts/neon-server.json +4 -4
- package/docs/safety-index/artifacts/neon-server.md +3 -3
- package/docs/safety-index/artifacts/notion-server.json +18 -18
- package/docs/safety-index/artifacts/notion-server.md +10 -10
- package/docs/safety-index/artifacts/obsidian-mcp.json +66 -0
- package/docs/safety-index/artifacts/obsidian-mcp.md +106 -0
- package/docs/safety-index/artifacts/ola-maps-mcp.json +66 -0
- package/docs/safety-index/artifacts/ola-maps-mcp.md +106 -0
- package/docs/safety-index/artifacts/olx-pakistan-mcp.json +66 -0
- package/docs/safety-index/artifacts/olx-pakistan-mcp.md +106 -0
- package/docs/safety-index/artifacts/onesignal-server.json +4 -4
- package/docs/safety-index/artifacts/onesignal-server.md +3 -3
- package/docs/safety-index/artifacts/openai-mcp-server.json +66 -0
- package/docs/safety-index/artifacts/openai-mcp-server.md +106 -0
- package/docs/safety-index/artifacts/opentofu-server.json +19 -19
- package/docs/safety-index/artifacts/opentofu-server.md +10 -10
- package/docs/safety-index/artifacts/openweather-server.json +66 -0
- package/docs/safety-index/artifacts/openweather-server.md +106 -0
- package/docs/safety-index/artifacts/pakistan-cricket-mcp.json +66 -0
- package/docs/safety-index/artifacts/pakistan-cricket-mcp.md +106 -0
- package/docs/safety-index/artifacts/pakistan-post-mcp.json +66 -0
- package/docs/safety-index/artifacts/pakistan-post-mcp.md +106 -0
- package/docs/safety-index/artifacts/pakistan-weather-mcp.json +66 -0
- package/docs/safety-index/artifacts/pakistan-weather-mcp.md +106 -0
- package/docs/safety-index/artifacts/pakwheels-mcp.json +66 -0
- package/docs/safety-index/artifacts/pakwheels-mcp.md +106 -0
- package/docs/safety-index/artifacts/paytm-mcp.json +66 -0
- package/docs/safety-index/artifacts/paytm-mcp.md +106 -0
- package/docs/safety-index/artifacts/perplexity-mcp.json +66 -0
- package/docs/safety-index/artifacts/perplexity-mcp.md +106 -0
- package/docs/safety-index/artifacts/pims-mcp.json +66 -0
- package/docs/safety-index/artifacts/pims-mcp.md +106 -0
- package/docs/safety-index/artifacts/playwright-mcp-server.json +18 -18
- package/docs/safety-index/artifacts/playwright-mcp-server.md +8 -8
- package/docs/safety-index/artifacts/postgres-server.json +19 -19
- package/docs/safety-index/artifacts/postgres-server.md +9 -9
- package/docs/safety-index/artifacts/postman-india-region.json +66 -0
- package/docs/safety-index/artifacts/postman-india-region.md +102 -0
- package/docs/safety-index/artifacts/postman-mcp-server.json +66 -0
- package/docs/safety-index/artifacts/postman-mcp-server.md +102 -0
- package/docs/safety-index/artifacts/promptopia-server.json +21 -21
- package/docs/safety-index/artifacts/promptopia-server.md +11 -11
- package/docs/safety-index/artifacts/pubmed-mcp-server.json +58 -0
- package/docs/safety-index/artifacts/pubmed-mcp-server.md +96 -0
- package/docs/safety-index/artifacts/punjab-health-mcp.json +66 -0
- package/docs/safety-index/artifacts/punjab-health-mcp.md +106 -0
- package/docs/safety-index/artifacts/puppeteer-server.json +18 -18
- package/docs/safety-index/artifacts/puppeteer-server.md +9 -9
- package/docs/safety-index/artifacts/qase-server.json +7055 -0
- package/docs/safety-index/artifacts/qase-server.md +329 -0
- package/docs/safety-index/artifacts/qdrant-server.json +4 -4
- package/docs/safety-index/artifacts/qdrant-server.md +4 -4
- package/docs/safety-index/artifacts/raspberrypi-server.json +66 -0
- package/docs/safety-index/artifacts/raspberrypi-server.md +106 -0
- package/docs/safety-index/artifacts/razorpay-mcp.json +66 -0
- package/docs/safety-index/artifacts/razorpay-mcp.md +103 -0
- package/docs/safety-index/artifacts/reddit-server.json +4 -4
- package/docs/safety-index/artifacts/reddit-server.md +3 -3
- package/docs/safety-index/artifacts/redis-server.json +66 -0
- package/docs/safety-index/artifacts/redis-server.md +106 -0
- package/docs/safety-index/artifacts/ref-tools-server.json +18 -18
- package/docs/safety-index/artifacts/ref-tools-server.md +8 -8
- package/docs/safety-index/artifacts/resend-mcp.json +66 -0
- package/docs/safety-index/artifacts/resend-mcp.md +102 -0
- package/docs/safety-index/artifacts/rozgar-mcp.json +66 -0
- package/docs/safety-index/artifacts/rozgar-mcp.md +106 -0
- package/docs/safety-index/artifacts/s3-mcp-server.json +467 -0
- package/docs/safety-index/artifacts/s3-mcp-server.md +209 -0
- package/docs/safety-index/artifacts/salesforce-mcp-server.json +66 -0
- package/docs/safety-index/artifacts/salesforce-mcp-server.md +106 -0
- package/docs/safety-index/artifacts/sehat-sahulat-mcp.json +66 -0
- package/docs/safety-index/artifacts/sehat-sahulat-mcp.md +106 -0
- package/docs/safety-index/artifacts/sendgrid-mcp.json +66 -0
- package/docs/safety-index/artifacts/sendgrid-mcp.md +106 -0
- package/docs/safety-index/artifacts/sentry-server.json +3 -3
- package/docs/safety-index/artifacts/sentry-server.md +2 -2
- package/docs/safety-index/artifacts/sequential-thinking-server.json +18 -18
- package/docs/safety-index/artifacts/sequential-thinking-server.md +8 -8
- package/docs/safety-index/artifacts/shopify-mcp-server.json +66 -0
- package/docs/safety-index/artifacts/shopify-mcp-server.md +106 -0
- package/docs/safety-index/artifacts/shopify-mcp.json +66 -0
- package/docs/safety-index/artifacts/shopify-mcp.md +106 -0
- package/docs/safety-index/artifacts/shortcut-mcp-server.json +66 -0
- package/docs/safety-index/artifacts/shortcut-mcp-server.md +102 -0
- package/docs/safety-index/artifacts/slack-server.json +3 -3
- package/docs/safety-index/artifacts/slack-server.md +2 -2
- package/docs/safety-index/artifacts/smartbear-mcp-server.json +21483 -0
- package/docs/safety-index/artifacts/smartbear-mcp-server.md +900 -0
- package/docs/safety-index/artifacts/spotify-mcp.json +2071 -0
- package/docs/safety-index/artifacts/spotify-mcp.md +237 -0
- package/docs/safety-index/artifacts/spotify-server.json +66 -0
- package/docs/safety-index/artifacts/spotify-server.md +106 -0
- package/docs/safety-index/artifacts/sqlite-server.json +4 -4
- package/docs/safety-index/artifacts/sqlite-server.md +3 -3
- package/docs/safety-index/artifacts/stable-diffusion-server.json +66 -0
- package/docs/safety-index/artifacts/stable-diffusion-server.md +106 -0
- package/docs/safety-index/artifacts/stock-nse-india.json +66 -0
- package/docs/safety-index/artifacts/stock-nse-india.md +106 -0
- package/docs/safety-index/artifacts/storybook-mcp-server.json +66 -0
- package/docs/safety-index/artifacts/storybook-mcp-server.md +103 -0
- package/docs/safety-index/artifacts/stripe-server.json +3 -3
- package/docs/safety-index/artifacts/stripe-server.md +2 -2
- package/docs/safety-index/artifacts/supabase-server.json +3 -3
- package/docs/safety-index/artifacts/supabase-server.md +2 -2
- package/docs/safety-index/artifacts/tavily-search-server.json +4 -4
- package/docs/safety-index/artifacts/tavily-search-server.md +3 -3
- package/docs/safety-index/artifacts/telegram-mcp-server.json +66 -0
- package/docs/safety-index/artifacts/telegram-mcp-server.md +103 -0
- package/docs/safety-index/artifacts/telenor-pakistan-mcp.json +66 -0
- package/docs/safety-index/artifacts/telenor-pakistan-mcp.md +106 -0
- package/docs/safety-index/artifacts/textlocal-mcp.json +66 -0
- package/docs/safety-index/artifacts/textlocal-mcp.md +106 -0
- package/docs/safety-index/artifacts/tooljet-mcp.json +66 -0
- package/docs/safety-index/artifacts/tooljet-mcp.md +106 -0
- package/docs/safety-index/artifacts/transcend-server.json +3438 -0
- package/docs/safety-index/artifacts/transcend-server.md +277 -0
- package/docs/safety-index/artifacts/trello-mcp-server.json +916 -0
- package/docs/safety-index/artifacts/trello-mcp-server.md +211 -0
- package/docs/safety-index/artifacts/twilio-mcp.json +66 -0
- package/docs/safety-index/artifacts/twilio-mcp.md +106 -0
- package/docs/safety-index/artifacts/udyam-mcp.json +66 -0
- package/docs/safety-index/artifacts/udyam-mcp.md +106 -0
- package/docs/safety-index/artifacts/ufone-mcp.json +66 -0
- package/docs/safety-index/artifacts/ufone-mcp.md +106 -0
- package/docs/safety-index/artifacts/ui5-mcp-server.json +21 -21
- package/docs/safety-index/artifacts/ui5-mcp-server.md +10 -10
- package/docs/safety-index/artifacts/unity-server.json +66 -0
- package/docs/safety-index/artifacts/unity-server.md +102 -0
- package/docs/safety-index/artifacts/upi-mcp.json +452 -0
- package/docs/safety-index/artifacts/upi-mcp.md +201 -0
- package/docs/safety-index/artifacts/vercel-ai-server.json +4 -4
- package/docs/safety-index/artifacts/vercel-ai-server.md +4 -4
- package/docs/safety-index/artifacts/vimeo-server.json +66 -0
- package/docs/safety-index/artifacts/vimeo-server.md +106 -0
- package/docs/safety-index/artifacts/weather-server.json +66 -0
- package/docs/safety-index/artifacts/weather-server.md +106 -0
- package/docs/safety-index/artifacts/whatsapp-business-mcp.json +66 -0
- package/docs/safety-index/artifacts/whatsapp-business-mcp.md +106 -0
- package/docs/safety-index/artifacts/whatsapp-mcp-server.json +66 -0
- package/docs/safety-index/artifacts/whatsapp-mcp-server.md +106 -0
- package/docs/safety-index/artifacts/whatsapp-mcp.json +66 -0
- package/docs/safety-index/artifacts/whatsapp-mcp.md +106 -0
- package/docs/safety-index/artifacts/yahoo-finance-server.json +626 -0
- package/docs/safety-index/artifacts/yahoo-finance-server.md +187 -0
- package/docs/safety-index/artifacts/youtube-mcp-server.json +58 -0
- package/docs/safety-index/artifacts/youtube-mcp-server.md +96 -0
- package/docs/safety-index/artifacts/youtube-server.json +66 -0
- package/docs/safety-index/artifacts/youtube-server.md +103 -0
- package/docs/safety-index/artifacts/zendesk-mcp.json +66 -0
- package/docs/safety-index/artifacts/zendesk-mcp.md +106 -0
- package/docs/safety-index/artifacts/zillow-server.json +66 -0
- package/docs/safety-index/artifacts/zillow-server.md +102 -0
- package/docs/safety-index/artifacts/zong-mcp.json +66 -0
- package/docs/safety-index/artifacts/zong-mcp.md +106 -0
- package/docs/safety-index/targets.json +2145 -20
- package/package.json +10 -9
|
@@ -1,9 +1,26 @@
|
|
|
1
1
|
import { access, mkdir, readFile, writeFile } from "node:fs/promises";
|
|
2
2
|
import path from "node:path";
|
|
3
|
-
import { buildEvent, normalizeCampaign, recordEvent } from "../telemetry.js";
|
|
3
|
+
import { buildEvent, detectCiProvider, normalizeCampaign, recordEvent } from "../telemetry.js";
|
|
4
4
|
import { defaultRunsDirectory, findLatestSuccessfulRunArtifact, readArtifact } from "../storage.js";
|
|
5
5
|
import { TOOL_VERSION } from "../version.js";
|
|
6
6
|
import { quoteShell } from "./helpers.js";
|
|
7
|
+
const CI_FILE_PATHS = {
|
|
8
|
+
"github-actions": ".github/workflows/mcp-observatory.yml",
|
|
9
|
+
"gitlab-ci": ".gitlab-ci.yml",
|
|
10
|
+
"circleci": ".circleci/config.yml",
|
|
11
|
+
"bitbucket-pipelines": "bitbucket-pipelines.yml",
|
|
12
|
+
"azure-pipelines": "azure-pipelines.yml",
|
|
13
|
+
};
|
|
14
|
+
const PROVIDER_LABELS = {
|
|
15
|
+
"github-actions": "GitHub Action",
|
|
16
|
+
"gitlab-ci": "GitLab CI",
|
|
17
|
+
"circleci": "CircleCI",
|
|
18
|
+
"bitbucket-pipelines": "Bitbucket Pipelines",
|
|
19
|
+
"azure-pipelines": "Azure Pipelines",
|
|
20
|
+
};
|
|
21
|
+
function providerLabel(provider) {
|
|
22
|
+
return PROVIDER_LABELS[provider] ?? "CI Workflow";
|
|
23
|
+
}
|
|
7
24
|
const DEFAULT_WORKFLOW_PATH = ".github/workflows/mcp-observatory.yml";
|
|
8
25
|
const DEFAULT_BADGE_PATH = "docs/mcp-observatory-badge.md";
|
|
9
26
|
const DEFAULT_TARGET_CONFIG_PATH = "mcp-observatory.target.json";
|
|
@@ -31,7 +48,7 @@ function normalizeSchedule(schedule) {
|
|
|
31
48
|
const value = schedule.trim();
|
|
32
49
|
return value.length > 0 ? value : DEFAULT_WEEKLY_CRON;
|
|
33
50
|
}
|
|
34
|
-
function
|
|
51
|
+
function githubActionsYaml(options) {
|
|
35
52
|
const command = options.command?.trim();
|
|
36
53
|
const target = options.target?.trim();
|
|
37
54
|
const commentsEnabled = options.commentOnPr === true;
|
|
@@ -76,6 +93,129 @@ function workflowYaml(options) {
|
|
|
76
93
|
lines.push("");
|
|
77
94
|
return lines.join("\n");
|
|
78
95
|
}
|
|
96
|
+
function workflowYaml(options) {
|
|
97
|
+
const provider = options.ciProvider ?? "github-actions";
|
|
98
|
+
switch (provider) {
|
|
99
|
+
case "github-actions": return githubActionsYaml(options);
|
|
100
|
+
case "gitlab-ci": return gitlabCiYaml(options);
|
|
101
|
+
case "circleci": return circleCiYaml(options);
|
|
102
|
+
case "bitbucket-pipelines": return bitbucketYaml(options);
|
|
103
|
+
case "azure-pipelines": return azurePipelinesYaml(options);
|
|
104
|
+
default: return githubActionsYaml(options);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
function gitlabCiYaml(options) {
|
|
108
|
+
const lines = [
|
|
109
|
+
"mcp-observatory:",
|
|
110
|
+
" image: node:22",
|
|
111
|
+
];
|
|
112
|
+
if (options.schedule) {
|
|
113
|
+
lines.push(" only:", " - schedules");
|
|
114
|
+
}
|
|
115
|
+
else {
|
|
116
|
+
lines.push(" rules:", " - if: $CI_PIPELINE_SOURCE == 'merge_request_event'", " - if: $CI_COMMIT_BRANCH == 'main'");
|
|
117
|
+
}
|
|
118
|
+
lines.push(" script:");
|
|
119
|
+
if (options.command) {
|
|
120
|
+
lines.push(` - npx @kryptosai/mcp-observatory test ${options.command} --deep --security` + (options.sarif !== false ? " --sarif mcp-observatory.sarif" : ""));
|
|
121
|
+
}
|
|
122
|
+
else if (options.all) {
|
|
123
|
+
lines.push(" - npx @kryptosai/mcp-observatory scan --deep --security" + (options.sarif !== false ? " --sarif mcp-observatory.sarif" : ""));
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
lines.push(` - npx @kryptosai/mcp-observatory test --target mcp-observatory.target.json --deep --security`);
|
|
127
|
+
}
|
|
128
|
+
if (options.sarif !== false) {
|
|
129
|
+
lines.push(" artifacts:", " reports:", " sast: mcp-observatory.sarif");
|
|
130
|
+
}
|
|
131
|
+
return lines.join("\n");
|
|
132
|
+
}
|
|
133
|
+
function circleCiYaml(options) {
|
|
134
|
+
const lines = [
|
|
135
|
+
"version: 2.1",
|
|
136
|
+
"",
|
|
137
|
+
"jobs:",
|
|
138
|
+
" mcp-observatory:",
|
|
139
|
+
" docker:",
|
|
140
|
+
" - image: cimg/node:22.0",
|
|
141
|
+
" steps:",
|
|
142
|
+
" - checkout",
|
|
143
|
+
` - run:`,
|
|
144
|
+
];
|
|
145
|
+
if (options.command) {
|
|
146
|
+
lines.push(` command: npx @kryptosai/mcp-observatory test ${options.command} --deep --security` + (options.sarif !== false ? " --sarif mcp-observatory.sarif" : ""));
|
|
147
|
+
}
|
|
148
|
+
else if (options.all) {
|
|
149
|
+
lines.push(" command: npx @kryptosai/mcp-observatory scan --deep --security" + (options.sarif !== false ? " --sarif mcp-observatory.sarif" : ""));
|
|
150
|
+
}
|
|
151
|
+
else {
|
|
152
|
+
lines.push(" command: npx @kryptosai/mcp-observatory test --target mcp-observatory.target.json --deep --security");
|
|
153
|
+
}
|
|
154
|
+
if (options.sarif !== false) {
|
|
155
|
+
lines.push(" - store_artifacts:", " path: mcp-observatory.sarif");
|
|
156
|
+
}
|
|
157
|
+
lines.push("", "workflows:", " version: 2", " mcp-observatory-workflow:", " jobs:", " - mcp-observatory" + (options.schedule ? ":\n filters:\n branches:\n only: /scheduled-scan/" : ""));
|
|
158
|
+
return lines.join("\n");
|
|
159
|
+
}
|
|
160
|
+
function bitbucketYaml(options) {
|
|
161
|
+
const lines = [
|
|
162
|
+
"image: node:22",
|
|
163
|
+
"",
|
|
164
|
+
"pipelines:",
|
|
165
|
+
];
|
|
166
|
+
if (options.schedule) {
|
|
167
|
+
lines.push(" custom:");
|
|
168
|
+
lines.push(" mcp-observatory-scheduled:");
|
|
169
|
+
}
|
|
170
|
+
else {
|
|
171
|
+
lines.push(" pull-requests:");
|
|
172
|
+
lines.push(" '**':");
|
|
173
|
+
}
|
|
174
|
+
lines.push(" - step:");
|
|
175
|
+
lines.push(" name: MCP Observatory Safety Check");
|
|
176
|
+
lines.push(" script:");
|
|
177
|
+
if (options.command) {
|
|
178
|
+
lines.push(` - npx @kryptosai/mcp-observatory test ${options.command} --deep --security` + (options.sarif !== false ? " --sarif mcp-observatory.sarif" : ""));
|
|
179
|
+
}
|
|
180
|
+
else if (options.all) {
|
|
181
|
+
lines.push(" - npx @kryptosai/mcp-observatory scan --deep --security" + (options.sarif !== false ? " --sarif mcp-observatory.sarif" : ""));
|
|
182
|
+
}
|
|
183
|
+
else {
|
|
184
|
+
lines.push(" - npx @kryptosai/mcp-observatory test --target mcp-observatory.target.json --deep --security");
|
|
185
|
+
}
|
|
186
|
+
if (options.sarif !== false) {
|
|
187
|
+
lines.push(" artifacts:", " - mcp-observatory.sarif");
|
|
188
|
+
}
|
|
189
|
+
if (!options.schedule && options.command) {
|
|
190
|
+
lines.push("", " branches:", " main:", " - step:", " name: MCP Observatory Safety Check", " script:", ` - npx @kryptosai/mcp-observatory test ${options.command} --deep --security` + (options.sarif !== false ? " --sarif mcp-observatory.sarif" : ""));
|
|
191
|
+
}
|
|
192
|
+
return lines.join("\n");
|
|
193
|
+
}
|
|
194
|
+
function azurePipelinesYaml(options) {
|
|
195
|
+
const lines = [
|
|
196
|
+
"trigger:",
|
|
197
|
+
" - main",
|
|
198
|
+
"",
|
|
199
|
+
];
|
|
200
|
+
if (!options.schedule) {
|
|
201
|
+
lines.push("pr:", " - main", "");
|
|
202
|
+
}
|
|
203
|
+
else {
|
|
204
|
+
lines.push("schedules:", " - cron: '0 6 * * *'", " displayName: Daily MCP safety scan", " branches:", " include:", " - main", "");
|
|
205
|
+
}
|
|
206
|
+
lines.push("pool:", " vmImage: ubuntu-latest", "", "steps:", " - task: NodeTool@0", " inputs:", " versionSpec: '22.x'", " displayName: 'Install Node.js'", "", " - script: |");
|
|
207
|
+
if (options.command) {
|
|
208
|
+
lines.push(` npx @kryptosai/mcp-observatory test ${options.command} --deep --security` + (options.sarif !== false ? " --sarif mcp-observatory.sarif" : ""));
|
|
209
|
+
}
|
|
210
|
+
else if (options.all) {
|
|
211
|
+
lines.push(" npx @kryptosai/mcp-observatory scan --deep --security" + (options.sarif !== false ? " --sarif mcp-observatory.sarif" : ""));
|
|
212
|
+
}
|
|
213
|
+
else {
|
|
214
|
+
lines.push(" npx @kryptosai/mcp-observatory test --target mcp-observatory.target.json --deep --security");
|
|
215
|
+
}
|
|
216
|
+
lines.push(" displayName: 'MCP Observatory Safety Check'");
|
|
217
|
+
return lines.join("\n");
|
|
218
|
+
}
|
|
79
219
|
function badgeMarkdown() {
|
|
80
220
|
return [
|
|
81
221
|
"[](https://github.com/KryptosAI/mcp-observatory)",
|
|
@@ -258,18 +398,21 @@ function doctorFixOptions(options, workflow) {
|
|
|
258
398
|
};
|
|
259
399
|
}
|
|
260
400
|
export async function doctorSetupCi(options = {}) {
|
|
261
|
-
const
|
|
401
|
+
const detectedProvider = options.ciProvider ?? detectCiProvider() ?? "github-actions";
|
|
402
|
+
const defaultPath = CI_FILE_PATHS[detectedProvider] ?? DEFAULT_WORKFLOW_PATH;
|
|
403
|
+
const workflowPath = options.workflow ?? defaultPath;
|
|
262
404
|
const badgePath = options.badgeFile ?? DEFAULT_BADGE_PATH;
|
|
263
405
|
const targetConfigPath = optionPath(options.targetConfig, DEFAULT_TARGET_CONFIG_PATH);
|
|
264
406
|
const prBodyPath = optionPath(options.prBody, DEFAULT_PR_BODY_PATH);
|
|
265
407
|
const issueBodyPath = optionPath(options.issueBody, DEFAULT_ISSUE_BODY_PATH);
|
|
266
408
|
const scoreBadgePath = optionPath(options.scoreBadge, DEFAULT_SCORE_BADGE_PATH);
|
|
409
|
+
const ciLabel = providerLabel(detectedProvider);
|
|
267
410
|
const workflow = await readOptional(workflowPath);
|
|
268
411
|
const checks = [];
|
|
269
412
|
if (workflow === undefined) {
|
|
270
413
|
checks.push({
|
|
271
414
|
id: "workflow",
|
|
272
|
-
label:
|
|
415
|
+
label: ciLabel,
|
|
273
416
|
status: "fail",
|
|
274
417
|
message: `${workflowPath} is missing.`,
|
|
275
418
|
fix: setupCommand(options),
|
|
@@ -278,7 +421,7 @@ export async function doctorSetupCi(options = {}) {
|
|
|
278
421
|
else {
|
|
279
422
|
checks.push({
|
|
280
423
|
id: "workflow",
|
|
281
|
-
label:
|
|
424
|
+
label: ciLabel,
|
|
282
425
|
status: "pass",
|
|
283
426
|
message: `${workflowPath} exists.`,
|
|
284
427
|
});
|
|
@@ -356,7 +499,9 @@ export async function initCi(options) {
|
|
|
356
499
|
if (options.target && shouldWrite(options.targetConfig, options.all)) {
|
|
357
500
|
throw new Error("Use either --target or --target-config, not both.");
|
|
358
501
|
}
|
|
359
|
-
const
|
|
502
|
+
const detectedProvider = options.ciProvider ?? detectCiProvider() ?? "github-actions";
|
|
503
|
+
const defaultPath = CI_FILE_PATHS[detectedProvider] ?? DEFAULT_WORKFLOW_PATH;
|
|
504
|
+
const workflowPath = options.workflow ?? defaultPath;
|
|
360
505
|
const badgePath = options.badgeFile ?? DEFAULT_BADGE_PATH;
|
|
361
506
|
const workflowStatus = await writeFileOnce(workflowPath, workflowYaml(options), options.force === true);
|
|
362
507
|
const result = {
|
|
@@ -410,7 +555,8 @@ function addInitCiOptions(command) {
|
|
|
410
555
|
.option("--doctor", "Inspect the current repository's MCP Observatory CI adoption state.", false)
|
|
411
556
|
.option("--fix", "With --doctor, repair the adoption kit with deep, security, SARIF, and weekly scheduled checks.", false)
|
|
412
557
|
.option("--from-last-run", "Generate the adoption kit from the latest successful local run artifact.", false)
|
|
413
|
-
.option("--campaign <slug>", "Attach a safe campaign/source slug to telemetry for attribution.")
|
|
558
|
+
.option("--campaign <slug>", "Attach a safe campaign/source slug to telemetry for attribution.")
|
|
559
|
+
.option("--identify <email>", "Opt-in: share your email to help us understand who uses Observatory. Never shared, never spammed.");
|
|
414
560
|
}
|
|
415
561
|
function initCiAction(commandName) {
|
|
416
562
|
return async (options) => {
|
|
@@ -427,7 +573,8 @@ function initCiAction(commandName) {
|
|
|
427
573
|
}
|
|
428
574
|
process.stdout.write(`\nNext best action:\n ${result.nextCommand}\n`);
|
|
429
575
|
if (options.fix) {
|
|
430
|
-
const
|
|
576
|
+
const defaultPath = CI_FILE_PATHS[options.ciProvider ?? detectCiProvider() ?? "github-actions"] ?? DEFAULT_WORKFLOW_PATH;
|
|
577
|
+
const workflow = await readOptional(options.workflow ?? defaultPath);
|
|
431
578
|
const fixed = await initCi(doctorFixOptions(options, workflow));
|
|
432
579
|
process.stdout.write("\nApplied repair:\n");
|
|
433
580
|
process.stdout.write(`${fixed.workflowStatus}: ${fixed.workflowPath}\n`);
|
|
@@ -447,7 +594,7 @@ function initCiAction(commandName) {
|
|
|
447
594
|
process.exitCode = 1;
|
|
448
595
|
}
|
|
449
596
|
recordEvent(buildEvent("command_complete", commandName, "cli", {
|
|
450
|
-
ciProvider: "github-actions",
|
|
597
|
+
ciProvider: options.ciProvider ?? detectCiProvider() ?? "github-actions",
|
|
451
598
|
setupCiDoctor: true,
|
|
452
599
|
setupCiReady: result.ready,
|
|
453
600
|
setupCiFailCount: result.checks.filter((check) => check.status === "fail").length,
|
|
@@ -503,7 +650,7 @@ function initCiAction(commandName) {
|
|
|
503
650
|
}
|
|
504
651
|
process.stdout.write("Next: commit the workflow, open a PR, and paste the generated PR body if present.\n");
|
|
505
652
|
recordEvent(buildEvent("command_complete", commandName, "cli", {
|
|
506
|
-
ciProvider: "github-actions",
|
|
653
|
+
ciProvider: options.ciProvider ?? detectCiProvider() ?? "github-actions",
|
|
507
654
|
commitStatusSet: !skipped,
|
|
508
655
|
campaign: options.campaign,
|
|
509
656
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init-ci.js","sourceRoot":"","sources":["../../../src/commands/init-ci.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"init-ci.js","sourceRoot":"","sources":["../../../src/commands/init-ci.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { mkdir, writeFile } from "node:fs/promises";
|
|
1
|
+
import { mkdir, readFile, writeFile } from "node:fs/promises";
|
|
2
2
|
import path from "node:path";
|
|
3
3
|
import { resolveAuditTarget, runAudit } from "../audit.js";
|
|
4
|
-
import { buildMcpReceipt, receiptFormatFromPath, renderReceipt } from "../receipt.js";
|
|
4
|
+
import { buildMcpReceipt, receiptFormatFromPath, renderReceipt, signReceipt } from "../receipt.js";
|
|
5
5
|
import { buildEvent, recordEvent } from "../telemetry.js";
|
|
6
6
|
import { ANSI, c } from "./helpers.js";
|
|
7
7
|
function extractTrailingReceiptFlags(args, options) {
|
|
@@ -74,6 +74,8 @@ export function registerReceiptCommands(program) {
|
|
|
74
74
|
.option("--environment-class <class>", "local, ci, public_safety_index, or private_fleet.")
|
|
75
75
|
.option("--top-findings <count>", "Number of top findings to include.", "5")
|
|
76
76
|
.option("--no-color", "Disable colored output.")
|
|
77
|
+
.option("--sign-key <path>", "Path to Ed25519 private key file (DER/PEM) to sign the receipt.")
|
|
78
|
+
.option("--signer <identity>", "Identity label for the signer (e.g., email). Required when --sign-key is used.")
|
|
77
79
|
.action(async (targetArgs, options) => {
|
|
78
80
|
const extracted = extractTrailingReceiptFlags(targetArgs, options);
|
|
79
81
|
targetArgs = extracted.targetArgs;
|
|
@@ -84,12 +86,20 @@ export function registerReceiptCommands(program) {
|
|
|
84
86
|
process.stdout.write(`${c(ANSI.dim, "⟳")} Building receipt for ${c(ANSI.bold, target.targetId)} with profile ${c(ANSI.bold, options.profile)}...\n`);
|
|
85
87
|
}
|
|
86
88
|
const report = await runAudit(target, options.profile);
|
|
87
|
-
|
|
89
|
+
let receipt = await buildMcpReceipt(report, target, {
|
|
88
90
|
commandInvoked: `mcp-observatory receipt ${targetArgs.join(" ")} --profile ${options.profile} --format ${options.format}${options.output ? ` --output ${options.output}` : ""}`,
|
|
89
91
|
environmentClass: options.environmentClass,
|
|
90
92
|
outputPath: options.output,
|
|
91
93
|
topFindingsLimit: Number.parseInt(options.topFindings ?? "5", 10),
|
|
92
94
|
});
|
|
95
|
+
if (options.signKey) {
|
|
96
|
+
if (!options.signer) {
|
|
97
|
+
process.stderr.write("Error: --signer is required when --sign-key is used.\n");
|
|
98
|
+
process.exit(1);
|
|
99
|
+
}
|
|
100
|
+
const keyContent = await readFile(options.signKey);
|
|
101
|
+
receipt = signReceipt(receipt, keyContent, options.signer);
|
|
102
|
+
}
|
|
93
103
|
const format = receiptFormatFromPath(options.output, options.format);
|
|
94
104
|
if (format !== "json" && format !== "markdown") {
|
|
95
105
|
throw new Error("Unsupported receipt format. Use json or markdown.");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"receipt.js","sourceRoot":"","sources":["../../../src/commands/receipt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"receipt.js","sourceRoot":"","sources":["../../../src/commands/receipt.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,16 @@
|
|
|
1
1
|
import type { Command } from "commander";
|
|
2
|
+
import type { RunArtifact } from "../types.js";
|
|
3
|
+
export type ScanServerCategory = "passed" | "failed" | "warning";
|
|
4
|
+
/**
|
|
5
|
+
* Categorizes a single server's scan result by its worst outcome:
|
|
6
|
+
* any failing check → "failed"; no failures but a partial/flaky check →
|
|
7
|
+
* "warning"; everything passed → "passed".
|
|
8
|
+
*/
|
|
9
|
+
export declare function categorizeServerResult(artifact: RunArtifact): ScanServerCategory;
|
|
10
|
+
/** "3 servers scanned: 1 passed, 1 failed, 1 warnings" */
|
|
11
|
+
export declare function formatScanSummaryLine(counts: {
|
|
12
|
+
passed: number;
|
|
13
|
+
failed: number;
|
|
14
|
+
warning: number;
|
|
15
|
+
}): string;
|
|
2
16
|
export declare function registerScanCommands(program: Command, bin: string): void;
|
|
@@ -2,17 +2,40 @@ import { access } from "node:fs/promises";
|
|
|
2
2
|
import { discoverSkillPaths, scanForTargets } from "../discovery.js";
|
|
3
3
|
import { runTarget, } from "../index.js";
|
|
4
4
|
import { appendHistory, buildHistoryEntry } from "../history.js";
|
|
5
|
-
import { buildEvent, normalizeCampaign, recordEvent } from "../telemetry.js";
|
|
5
|
+
import { buildEvent, generateSessionId, normalizeCampaign, recordEvent, recordSessionEnd, recordSessionStart } from "../telemetry.js";
|
|
6
6
|
import { TOOL_VERSION } from "../version.js";
|
|
7
7
|
import { maybePrintCloudCta } from "../commercial.js";
|
|
8
8
|
import { renderActionReceipt } from "../action-receipt.js";
|
|
9
|
-
import { ANSI, LOGO, c, setupCiHint, useColor } from "./helpers.js";
|
|
9
|
+
import { ANSI, LOGO, c, isQuiet, setupCiHint, suggestFix, useColor } from "./helpers.js";
|
|
10
|
+
import { firstNextStep } from "../utils/failure-diagnosis.js";
|
|
10
11
|
import { maybeConvertPassingCheckToCi } from "./setup-ci-conversion.js";
|
|
12
|
+
/**
|
|
13
|
+
* Categorizes a single server's scan result by its worst outcome:
|
|
14
|
+
* any failing check → "failed"; no failures but a partial/flaky check →
|
|
15
|
+
* "warning"; everything passed → "passed".
|
|
16
|
+
*/
|
|
17
|
+
export function categorizeServerResult(artifact) {
|
|
18
|
+
if (artifact.gate === "fail")
|
|
19
|
+
return "failed";
|
|
20
|
+
if (artifact.summary.partial > 0 || artifact.summary.flaky > 0)
|
|
21
|
+
return "warning";
|
|
22
|
+
return "passed";
|
|
23
|
+
}
|
|
24
|
+
/** "3 servers scanned: 1 passed, 1 failed, 1 warnings" */
|
|
25
|
+
export function formatScanSummaryLine(counts) {
|
|
26
|
+
const total = counts.passed + counts.failed + counts.warning;
|
|
27
|
+
return `${total} server${total === 1 ? "" : "s"} scanned: ${counts.passed} passed, ${counts.failed} failed, ${counts.warning} warnings`;
|
|
28
|
+
}
|
|
11
29
|
async function runScan(bin, configPath, invokeTools, securityCheck, format, attackSim = true, conversionFlags = {}, skillScanOption) {
|
|
30
|
+
const sessionId = generateSessionId();
|
|
31
|
+
recordSessionStart(sessionId);
|
|
12
32
|
if (conversionFlags.campaign)
|
|
13
33
|
conversionFlags.campaign = normalizeCampaign(conversionFlags.campaign);
|
|
14
34
|
const t0 = Date.now();
|
|
15
|
-
|
|
35
|
+
recordSessionStart(generateSessionId());
|
|
36
|
+
if (!isQuiet()) {
|
|
37
|
+
process.stdout.write(useColor() ? c(ANSI.cyan, LOGO) + ` ${c(ANSI.dim, `v${TOOL_VERSION}`)}\n\n` : LOGO + ` v${TOOL_VERSION}\n\n`);
|
|
38
|
+
}
|
|
16
39
|
if (configPath) {
|
|
17
40
|
try {
|
|
18
41
|
await access(configPath);
|
|
@@ -20,6 +43,7 @@ async function runScan(bin, configPath, invokeTools, securityCheck, format, atta
|
|
|
20
43
|
catch {
|
|
21
44
|
process.stdout.write(c(ANSI.red, ` ✗ Config file not found: ${configPath}\n\n`));
|
|
22
45
|
process.exitCode = 1;
|
|
46
|
+
recordSessionEnd(sessionId);
|
|
23
47
|
return;
|
|
24
48
|
}
|
|
25
49
|
}
|
|
@@ -29,6 +53,7 @@ async function runScan(bin, configPath, invokeTools, securityCheck, format, atta
|
|
|
29
53
|
process.stdout.write(c(ANSI.dim, " Looked in ~/.claude.json, Claude Desktop, Cursor, Windsurf, VS Code, OpenCode, Codex, Gemini CLI, Kiro, Antigravity, Amazon Q, and project-level .mcp.json\n\n"));
|
|
30
54
|
process.stdout.write(" Test a specific server:\n");
|
|
31
55
|
process.stdout.write(` ${c(ANSI.dim, "$")} ${c(ANSI.cyan, `${bin} test npx -y @modelcontextprotocol/server-filesystem .`)}\n\n`);
|
|
56
|
+
recordSessionEnd(sessionId);
|
|
32
57
|
return;
|
|
33
58
|
}
|
|
34
59
|
process.stdout.write(c(ANSI.bold, ` Found ${targets.length} MCP server${targets.length === 1 ? "" : "s"}:\n`));
|
|
@@ -44,6 +69,7 @@ async function runScan(bin, configPath, invokeTools, securityCheck, format, atta
|
|
|
44
69
|
let totalTools = 0;
|
|
45
70
|
let totalPrompts = 0;
|
|
46
71
|
let totalResources = 0;
|
|
72
|
+
const categoryCounts = { passed: 0, failed: 0, warning: 0 };
|
|
47
73
|
for (const t of targets) {
|
|
48
74
|
process.stdout.write(` ${c(ANSI.dim, "⟳")} Checking ${c(ANSI.bold, t.config.targetId)}...`);
|
|
49
75
|
try {
|
|
@@ -73,6 +99,10 @@ async function runScan(bin, configPath, invokeTools, securityCheck, format, atta
|
|
|
73
99
|
process.stdout.write(`${c(ANSI.dim, `${toolCount} tools, ${promptCount} prompts, ${resourceCount} resources`)}\n`);
|
|
74
100
|
if (artifact.fatalError) {
|
|
75
101
|
process.stdout.write(` ${c(ANSI.red, "→")} ${artifact.fatalError.split("\n")[0]}\n`);
|
|
102
|
+
const fixHint = firstNextStep(artifact.fatalError) ?? suggestFix(artifact.fatalError);
|
|
103
|
+
if (fixHint) {
|
|
104
|
+
process.stdout.write(` ${c(ANSI.dim, `→ ${fixHint}`)}\n`);
|
|
105
|
+
}
|
|
76
106
|
}
|
|
77
107
|
else if (artifact.gate === "fail" && diagnostics.length > 0) {
|
|
78
108
|
process.stdout.write(` ${c(ANSI.dim, "→")} ${diagnostics[0]}\n`);
|
|
@@ -89,6 +119,7 @@ async function runScan(bin, configPath, invokeTools, securityCheck, format, atta
|
|
|
89
119
|
passCount++;
|
|
90
120
|
else
|
|
91
121
|
failCount++;
|
|
122
|
+
categoryCounts[categorizeServerResult(artifact)]++;
|
|
92
123
|
}
|
|
93
124
|
catch (error) {
|
|
94
125
|
const msg = error instanceof Error ? error.message : String(error);
|
|
@@ -105,6 +136,10 @@ async function runScan(bin, configPath, invokeTools, securityCheck, format, atta
|
|
|
105
136
|
}
|
|
106
137
|
process.stdout.write(`\r ${c(ANSI.red, "✗")} ${c(ANSI.bold, t.config.targetId)}\n`);
|
|
107
138
|
process.stdout.write(` ${c(ANSI.red, friendlyMsg)}\n`);
|
|
139
|
+
const fixHint = suggestFix(msg);
|
|
140
|
+
if (fixHint) {
|
|
141
|
+
process.stdout.write(` ${c(ANSI.dim, `→ ${fixHint}`)}\n`);
|
|
142
|
+
}
|
|
108
143
|
// Docker-specific hint
|
|
109
144
|
const serverCmd = t.config.adapter === "local-process" ? t.config.command : "";
|
|
110
145
|
if (serverCmd === "docker" || serverCmd.startsWith("docker ")) {
|
|
@@ -112,6 +147,7 @@ async function runScan(bin, configPath, invokeTools, securityCheck, format, atta
|
|
|
112
147
|
}
|
|
113
148
|
results.push({ targetId: t.config.targetId, gate: "fail", toolCount: 0, promptCount: 0, resourceCount: 0, error: friendlyMsg, diagnostics: [] });
|
|
114
149
|
failCount++;
|
|
150
|
+
categoryCounts.failed++;
|
|
115
151
|
}
|
|
116
152
|
}
|
|
117
153
|
// ── Summary ──────────────────────────────────────────────────────────
|
|
@@ -129,6 +165,12 @@ async function runScan(bin, configPath, invokeTools, securityCheck, format, atta
|
|
|
129
165
|
process.stdout.write("\n");
|
|
130
166
|
}
|
|
131
167
|
}
|
|
168
|
+
const scanTotal = categoryCounts.passed + categoryCounts.failed + categoryCounts.warning;
|
|
169
|
+
process.stdout.write(c(ANSI.dim, " ─────────────────────────────\n"));
|
|
170
|
+
process.stdout.write(` ${scanTotal} server${scanTotal === 1 ? "" : "s"} scanned: ` +
|
|
171
|
+
`${c(ANSI.green, `${categoryCounts.passed} passed`)}, ` +
|
|
172
|
+
`${c(ANSI.red, `${categoryCounts.failed} failed`)}, ` +
|
|
173
|
+
`${c(ANSI.yellow, `${categoryCounts.warning} warnings`)}\n`);
|
|
132
174
|
// Show diagnostics for failures or notable partials
|
|
133
175
|
const issues = results.filter((r) => r.diagnostics.length > 0 && !r.error);
|
|
134
176
|
if (issues.length > 0) {
|
|
@@ -207,6 +249,9 @@ async function runScan(bin, configPath, invokeTools, securityCheck, format, atta
|
|
|
207
249
|
const attack = artifact.checks.find((check) => check.id === "attack-sim");
|
|
208
250
|
return sum + (attack?.evidence[0]?.itemCount ?? 0);
|
|
209
251
|
}, 0),
|
|
252
|
+
targetServer: targets.length === 1 ? targets[0].config.targetId : `${targets.length} servers`,
|
|
253
|
+
scanCount: targets.length,
|
|
254
|
+
stageOverride: "discovery",
|
|
210
255
|
}));
|
|
211
256
|
if (failCount > 0) {
|
|
212
257
|
process.exitCode = 1;
|
|
@@ -228,6 +273,7 @@ async function runScan(bin, configPath, invokeTools, securityCheck, format, atta
|
|
|
228
273
|
}
|
|
229
274
|
}
|
|
230
275
|
}
|
|
276
|
+
recordSessionEnd(sessionId);
|
|
231
277
|
}
|
|
232
278
|
// ── Register ────────────────────────────────────────────────────────────────
|
|
233
279
|
export function registerScanCommands(program, bin) {
|
|
@@ -245,6 +291,7 @@ export function registerScanCommands(program, bin) {
|
|
|
245
291
|
.option("--no-ci-sarif", "Generate post-scan CI without GitHub Code Scanning SARIF upload.")
|
|
246
292
|
.option("--force", "Overwrite existing generated CI adoption files.", false)
|
|
247
293
|
.option("--no-color", "Disable colored output.")
|
|
294
|
+
.option("--quiet", "Suppress logo and informational output.", false)
|
|
248
295
|
.option("--skill-scan [path]", "Also scan skill directories for security risks. Auto-discovers from agent skill paths when no path given.")
|
|
249
296
|
.option("--enforce", "After scan, show the enforce command for the first target.");
|
|
250
297
|
// `scan` with no subcommand — basic scan
|
|
@@ -269,6 +316,7 @@ export function registerScanCommands(program, bin) {
|
|
|
269
316
|
.option("--no-setup-ci", "Suppress the post-success CI conversion prompt and hint.")
|
|
270
317
|
.option("--no-ci-sarif", "Generate post-scan CI without GitHub Code Scanning SARIF upload.")
|
|
271
318
|
.option("--force", "Overwrite existing generated CI adoption files.", false)
|
|
319
|
+
.option("--quiet", "Suppress logo and informational output.", false)
|
|
272
320
|
.action(async (options) => {
|
|
273
321
|
const parentConfig = scanCmd.opts().config;
|
|
274
322
|
const parentSecurity = scanCmd.opts().security;
|