{
  "dataset": "Canopii MCP Security Index",
  "edition": "live",
  "capturedAt": "2026-10-11T08:15:46.252Z",
  "source": "https://index.canopii.dev/mcp-security-index",
  "license": "https://creativecommons.org/licenses/by/4.0/",
  "attribution": "Canopii Trust Index",
  "generatedAt": "2026-10-11T08:15:46.252Z",
  "scoringVersion": "2.9.0",
  "corpus": {
    "servers": 43400,
    "scored": 34498,
    "unverifiable": 8898,
    "pending": 4,
    "liveProbed": 3204
  },
  "grades": [
    {
      "grade": "A",
      "n": 10469,
      "pct": 30
    },
    {
      "grade": "B",
      "n": 14388,
      "pct": 42
    },
    {
      "grade": "C",
      "n": 2913,
      "pct": 8
    },
    {
      "grade": "D",
      "n": 5609,
      "pct": 16
    },
    {
      "grade": "F",
      "n": 1119,
      "pct": 3
    }
  ],
  "scoreSummary": {
    "mean": 75.5,
    "median": 86,
    "p25": 61,
    "p75": 90,
    "min": 11,
    "max": 100
  },
  "headline": {
    "dfPct": 20,
    "secretsPct": 0,
    "noAuthPct": 49,
    "authTheaterPct": 3,
    "codeSafetyPct": 3,
    "toolPoisoningPct": 1
  },
  "controls": [
    {
      "id": "code.no_command_injection",
      "domain": "code_safety",
      "title": "No command-injection sinks",
      "guard": true,
      "weight": 10,
      "pass": 28243,
      "fail": 546,
      "warn": 267,
      "notApplicable": 0,
      "notChecked": 5442,
      "evaluated": 29056,
      "failPct": 2
    },
    {
      "id": "code.no_code_eval",
      "domain": "code_safety",
      "title": "No dynamic code execution",
      "guard": true,
      "weight": 8,
      "pass": 28683,
      "fail": 277,
      "warn": 96,
      "notApplicable": 0,
      "notChecked": 5442,
      "evaluated": 29056,
      "failPct": 1
    },
    {
      "id": "code.no_path_traversal",
      "domain": "code_safety",
      "title": "No path traversal",
      "guard": true,
      "weight": 7,
      "pass": 22058,
      "fail": 0,
      "warn": 6998,
      "notApplicable": 0,
      "notChecked": 5442,
      "evaluated": 29056,
      "failPct": 0
    },
    {
      "id": "code.no_ssrf",
      "domain": "code_safety",
      "title": "No SSRF sinks",
      "guard": true,
      "weight": 6,
      "pass": 19998,
      "fail": 0,
      "warn": 9058,
      "notApplicable": 0,
      "notChecked": 5442,
      "evaluated": 29056,
      "failPct": 0
    },
    {
      "id": "code.no_unsafe_deserialize",
      "domain": "code_safety",
      "title": "No unsafe deserialization",
      "guard": true,
      "weight": 6,
      "pass": 28931,
      "fail": 106,
      "warn": 19,
      "notApplicable": 0,
      "notChecked": 5442,
      "evaluated": 29056,
      "failPct": 0
    },
    {
      "id": "secrets.no_committed_secrets",
      "domain": "secrets",
      "title": "No committed secrets",
      "guard": true,
      "weight": 10,
      "pass": 29056,
      "fail": 0,
      "warn": 0,
      "notApplicable": 0,
      "notChecked": 5442,
      "evaluated": 29056,
      "failPct": 0
    },
    {
      "id": "secrets.from_env",
      "domain": "secrets",
      "title": "Credentials sourced from environment",
      "guard": false,
      "weight": 3,
      "pass": 16915,
      "fail": 0,
      "warn": 12141,
      "notApplicable": 0,
      "notChecked": 5442,
      "evaluated": 29056,
      "failPct": 0
    },
    {
      "id": "supply.no_known_vulns",
      "domain": "supply_chain",
      "title": "No known-vulnerable dependencies",
      "guard": false,
      "weight": 9,
      "pass": 14234,
      "fail": 0,
      "warn": 4080,
      "notApplicable": 5429,
      "notChecked": 10755,
      "evaluated": 18314,
      "failPct": 0
    },
    {
      "id": "supply.deps_pinned",
      "domain": "supply_chain",
      "title": "Dependencies pinned (lockfile)",
      "guard": false,
      "weight": 5,
      "pass": 6714,
      "fail": 0,
      "warn": 22342,
      "notApplicable": 0,
      "notChecked": 5442,
      "evaluated": 29056,
      "failPct": 0
    },
    {
      "id": "supply.no_install_scripts",
      "domain": "supply_chain",
      "title": "No install/post-install scripts",
      "guard": true,
      "weight": 5,
      "pass": 10096,
      "fail": 395,
      "warn": 0,
      "notApplicable": 20222,
      "notChecked": 3785,
      "evaluated": 10491,
      "failPct": 4
    },
    {
      "id": "supply.not_typosquatting",
      "domain": "supply_chain",
      "title": "Package name not typosquatting",
      "guard": true,
      "weight": 6,
      "pass": 14220,
      "fail": 12,
      "warn": 0,
      "notApplicable": 20222,
      "notChecked": 44,
      "evaluated": 14232,
      "failPct": 0
    },
    {
      "id": "supply.provenance",
      "domain": "supply_chain",
      "title": "Published with provenance",
      "guard": false,
      "weight": 3,
      "pass": 2472,
      "fail": 0,
      "warn": 8019,
      "notApplicable": 20222,
      "notChecked": 3785,
      "evaluated": 10491,
      "failPct": 0
    },
    {
      "id": "supply.maintainer_established",
      "domain": "supply_chain",
      "title": "Established maintainer",
      "guard": false,
      "weight": 3,
      "pass": 1861,
      "fail": 0,
      "warn": 12371,
      "notApplicable": 20222,
      "notChecked": 44,
      "evaluated": 14232,
      "failPct": 0
    },
    {
      "id": "tool.no_injection_markers",
      "domain": "tool_integrity",
      "title": "Tool descriptions free of injection markers",
      "guard": true,
      "weight": 9,
      "pass": 26793,
      "fail": 491,
      "warn": 0,
      "notApplicable": 0,
      "notChecked": 7214,
      "evaluated": 27284,
      "failPct": 2
    },
    {
      "id": "tool.schemas_strict",
      "domain": "tool_integrity",
      "title": "Strict tool input schemas",
      "guard": false,
      "weight": 4,
      "pass": 3083,
      "fail": 0,
      "warn": 19420,
      "notApplicable": 0,
      "notChecked": 11995,
      "evaluated": 22503,
      "failPct": 0
    },
    {
      "id": "tool.no_rug_pull",
      "domain": "tool_integrity",
      "title": "No risky post-publish tool changes (rug-pull)",
      "guard": true,
      "weight": 6,
      "pass": 8571,
      "fail": 35,
      "warn": 2192,
      "notApplicable": 23700,
      "notChecked": 0,
      "evaluated": 10798,
      "failPct": 0
    },
    {
      "id": "tool.no_runtime_mutation",
      "domain": "tool_integrity",
      "title": "No in-session tool-definition changes",
      "guard": true,
      "weight": 5,
      "pass": 5109,
      "fail": 0,
      "warn": 6,
      "notApplicable": 0,
      "notChecked": 1074,
      "evaluated": 5115,
      "failPct": 0
    },
    {
      "id": "tool.no_destructive_scope",
      "domain": "tool_integrity",
      "title": "No over-broad / destructive tools",
      "guard": true,
      "weight": 4,
      "pass": 24607,
      "fail": 2677,
      "warn": 0,
      "notApplicable": 0,
      "notChecked": 7214,
      "evaluated": 27284,
      "failPct": 10
    },
    {
      "id": "transport.uses_tls",
      "domain": "auth_transport",
      "title": "Remote endpoints use TLS",
      "guard": true,
      "weight": 7,
      "pass": 19044,
      "fail": 0,
      "warn": 0,
      "notApplicable": 15454,
      "notChecked": 0,
      "evaluated": 19044,
      "failPct": 0
    },
    {
      "id": "auth.declared",
      "domain": "auth_transport",
      "title": "Authentication declared",
      "guard": false,
      "weight": 5,
      "pass": 2063,
      "fail": 0,
      "warn": 16981,
      "notApplicable": 15454,
      "notChecked": 0,
      "evaluated": 19044,
      "failPct": 0
    },
    {
      "id": "auth.no_token_passthrough",
      "domain": "auth_transport",
      "title": "No token passthrough",
      "guard": true,
      "weight": 6,
      "pass": 2803,
      "fail": 17,
      "warn": 6,
      "notApplicable": 2289,
      "notChecked": 1074,
      "evaluated": 2826,
      "failPct": 1
    },
    {
      "id": "transport.origin_validated",
      "domain": "auth_transport",
      "title": "Origin validated (DNS-rebinding protection)",
      "guard": false,
      "weight": 4,
      "pass": 139,
      "fail": 21,
      "warn": 509,
      "notApplicable": 2291,
      "notChecked": 3229,
      "evaluated": 669,
      "failPct": 3
    },
    {
      "id": "deploy.sandboxed",
      "domain": "auth_transport",
      "title": "Execution sandboxing",
      "guard": false,
      "weight": 3,
      "pass": 4982,
      "fail": 0,
      "warn": 24074,
      "notApplicable": 0,
      "notChecked": 5442,
      "evaluated": 29056,
      "failPct": 0
    },
    {
      "id": "dynamic.reachable",
      "domain": "auth_transport",
      "title": "Live endpoint reachable",
      "guard": false,
      "weight": 3,
      "pass": 0,
      "fail": 0,
      "warn": 0,
      "notApplicable": 34498,
      "notChecked": 0,
      "evaluated": 0,
      "failPct": 0
    },
    {
      "id": "dynamic.auth_enforced",
      "domain": "auth_transport",
      "title": "Authentication enforced",
      "guard": false,
      "weight": 4,
      "pass": 0,
      "fail": 0,
      "warn": 0,
      "notApplicable": 34498,
      "notChecked": 0,
      "evaluated": 0,
      "failPct": 0
    },
    {
      "id": "transport.no_bind_all",
      "domain": "auth_transport",
      "title": "No bind-all / exposed debug",
      "guard": false,
      "weight": 3,
      "pass": 25405,
      "fail": 0,
      "warn": 3651,
      "notApplicable": 0,
      "notChecked": 5442,
      "evaluated": 29056,
      "failPct": 0
    },
    {
      "id": "maint.actively_maintained",
      "domain": "maintenance",
      "title": "Actively maintained",
      "guard": false,
      "weight": 4,
      "pass": 26065,
      "fail": 0,
      "warn": 1067,
      "notApplicable": 0,
      "notChecked": 7366,
      "evaluated": 27132,
      "failPct": 0
    },
    {
      "id": "maint.not_archived",
      "domain": "maintenance",
      "title": "Repository not archived",
      "guard": true,
      "weight": 2,
      "pass": 26854,
      "fail": 278,
      "warn": 0,
      "notApplicable": 0,
      "notChecked": 7366,
      "evaluated": 27132,
      "failPct": 1
    },
    {
      "id": "gov.declares_license",
      "domain": "maintenance",
      "title": "Declares a license",
      "guard": false,
      "weight": 3,
      "pass": 19603,
      "fail": 0,
      "warn": 7529,
      "notApplicable": 0,
      "notChecked": 7366,
      "evaluated": 27132,
      "failPct": 0
    },
    {
      "id": "gov.security_policy",
      "domain": "maintenance",
      "title": "Has a security policy",
      "guard": false,
      "weight": 2,
      "pass": 5352,
      "fail": 0,
      "warn": 23704,
      "notApplicable": 0,
      "notChecked": 5442,
      "evaluated": 29056,
      "failPct": 0
    },
    {
      "id": "gov.signed_releases",
      "domain": "maintenance",
      "title": "Signed releases",
      "guard": false,
      "weight": 2,
      "pass": 0,
      "fail": 0,
      "warn": 0,
      "notApplicable": 0,
      "notChecked": 34498,
      "evaluated": 0,
      "failPct": 0
    },
    {
      "id": "reputation.adoption",
      "domain": "maintenance",
      "title": "Adoption & popularity",
      "guard": false,
      "weight": 2,
      "pass": 10886,
      "fail": 0,
      "warn": 17658,
      "notApplicable": 0,
      "notChecked": 5954,
      "evaluated": 28544,
      "failPct": 0
    }
  ],
  "popularityStars": [
    {
      "label": "1,000+ stars",
      "servers": 309,
      "avgScore": 76,
      "dfPct": 17
    },
    {
      "label": "100–999 stars",
      "servers": 1156,
      "avgScore": 79,
      "dfPct": 13
    },
    {
      "label": "10–99 stars",
      "servers": 2655,
      "avgScore": 81,
      "dfPct": 10
    },
    {
      "label": "Under 10 stars",
      "servers": 23012,
      "avgScore": 82,
      "dfPct": 3
    }
  ],
  "popularityDownloads": [
    {
      "label": "100k+/month",
      "servers": 36,
      "avgScore": 83,
      "dfPct": 8
    },
    {
      "label": "10k–100k/month",
      "servers": 129,
      "avgScore": 80,
      "dfPct": 10
    },
    {
      "label": "1k–10k/month",
      "servers": 1626,
      "avgScore": 85,
      "dfPct": 7
    },
    {
      "label": "Under 1k/month",
      "servers": 7447,
      "avgScore": 87,
      "dfPct": 3
    }
  ],
  "toolSurface": [
    {
      "label": "No tools",
      "servers": 7214,
      "avgScore": 82,
      "dfPct": 4
    },
    {
      "label": "1–5 tools",
      "servers": 10740,
      "avgScore": 75,
      "dfPct": 25
    },
    {
      "label": "6–20 tools",
      "servers": 10150,
      "avgScore": 75,
      "dfPct": 27
    },
    {
      "label": "20+ tools",
      "servers": 6394,
      "avgScore": 70,
      "dfPct": 16
    }
  ],
  "ecosystems": [
    {
      "label": "repo / remote-only",
      "servers": 19540,
      "avgScore": 68,
      "dfPct": 31
    },
    {
      "label": "npm",
      "servers": 10493,
      "avgScore": 86,
      "dfPct": 4
    },
    {
      "label": "pypi",
      "servers": 3762,
      "avgScore": 81,
      "dfPct": 8
    },
    {
      "label": "mcpb",
      "servers": 521,
      "avgScore": 84,
      "dfPct": 5
    },
    {
      "label": "nuget",
      "servers": 120,
      "avgScore": 89,
      "dfPct": 3
    },
    {
      "label": "cargo",
      "servers": 62,
      "avgScore": 86,
      "dfPct": 5
    }
  ],
  "confidence": [
    {
      "label": "High (80%+ verified)",
      "servers": 25134,
      "avgScore": 83,
      "dfPct": 5
    },
    {
      "label": "60–80% verified",
      "servers": 3923,
      "avgScore": 78,
      "dfPct": 3
    },
    {
      "label": "Low (under 40% verified)",
      "servers": 5442,
      "avgScore": 40,
      "dfPct": 100
    }
  ]
}