{
  "dataset": "Canopii MCP Security Index",
  "edition": "live",
  "capturedAt": "2026-08-05T15:15:23.155Z",
  "source": "https://index.canopii.dev/mcp-security-index",
  "license": "https://creativecommons.org/licenses/by/4.0/",
  "attribution": "Canopii Trust Index",
  "generatedAt": "2026-08-05T15:15:23.155Z",
  "scoringVersion": "2.8.1",
  "corpus": {
    "servers": 20289,
    "scored": 15383,
    "unverifiable": 4906,
    "pending": 0,
    "liveProbed": 4764
  },
  "grades": [
    {
      "grade": "A",
      "n": 6070,
      "pct": 39
    },
    {
      "grade": "B",
      "n": 6956,
      "pct": 45
    },
    {
      "grade": "C",
      "n": 413,
      "pct": 3
    },
    {
      "grade": "D",
      "n": 675,
      "pct": 4
    },
    {
      "grade": "F",
      "n": 1269,
      "pct": 8
    }
  ],
  "scoreSummary": {
    "mean": 79.4,
    "median": 88,
    "p25": 80,
    "p75": 91,
    "min": 11,
    "max": 100
  },
  "headline": {
    "dfPct": 13,
    "secretsPct": 0,
    "noAuthPct": 33,
    "authTheaterPct": 2,
    "codeSafetyPct": 8,
    "toolPoisoningPct": 1
  },
  "controls": [
    {
      "id": "code.no_command_injection",
      "domain": "code_safety",
      "title": "No command-injection sinks",
      "guard": true,
      "weight": 10,
      "pass": 13799,
      "fail": 1078,
      "warn": 0,
      "notApplicable": 0,
      "notChecked": 506,
      "evaluated": 14877,
      "failPct": 7
    },
    {
      "id": "code.no_code_eval",
      "domain": "code_safety",
      "title": "No dynamic code execution",
      "guard": true,
      "weight": 8,
      "pass": 14706,
      "fail": 171,
      "warn": 0,
      "notApplicable": 0,
      "notChecked": 506,
      "evaluated": 14877,
      "failPct": 1
    },
    {
      "id": "code.no_path_traversal",
      "domain": "code_safety",
      "title": "No path traversal",
      "guard": true,
      "weight": 7,
      "pass": 12367,
      "fail": 0,
      "warn": 2510,
      "notApplicable": 0,
      "notChecked": 506,
      "evaluated": 14877,
      "failPct": 0
    },
    {
      "id": "code.no_ssrf",
      "domain": "code_safety",
      "title": "No SSRF sinks",
      "guard": true,
      "weight": 6,
      "pass": 9891,
      "fail": 0,
      "warn": 4986,
      "notApplicable": 0,
      "notChecked": 506,
      "evaluated": 14877,
      "failPct": 0
    },
    {
      "id": "code.no_unsafe_deserialize",
      "domain": "code_safety",
      "title": "No unsafe deserialization",
      "guard": true,
      "weight": 6,
      "pass": 14791,
      "fail": 86,
      "warn": 0,
      "notApplicable": 0,
      "notChecked": 506,
      "evaluated": 14877,
      "failPct": 1
    },
    {
      "id": "secrets.no_committed_secrets",
      "domain": "secrets",
      "title": "No committed secrets",
      "guard": true,
      "weight": 10,
      "pass": 14877,
      "fail": 0,
      "warn": 0,
      "notApplicable": 0,
      "notChecked": 506,
      "evaluated": 14877,
      "failPct": 0
    },
    {
      "id": "secrets.from_env",
      "domain": "secrets",
      "title": "Credentials sourced from environment",
      "guard": false,
      "weight": 3,
      "pass": 9714,
      "fail": 0,
      "warn": 5163,
      "notApplicable": 0,
      "notChecked": 506,
      "evaluated": 14877,
      "failPct": 0
    },
    {
      "id": "supply.no_known_vulns",
      "domain": "supply_chain",
      "title": "No known-vulnerable dependencies",
      "guard": false,
      "weight": 9,
      "pass": 8758,
      "fail": 0,
      "warn": 2163,
      "notApplicable": 502,
      "notChecked": 3960,
      "evaluated": 10921,
      "failPct": 0
    },
    {
      "id": "supply.deps_pinned",
      "domain": "supply_chain",
      "title": "Dependencies pinned (lockfile)",
      "guard": false,
      "weight": 5,
      "pass": 3456,
      "fail": 0,
      "warn": 11421,
      "notApplicable": 0,
      "notChecked": 506,
      "evaluated": 14877,
      "failPct": 0
    },
    {
      "id": "supply.no_install_scripts",
      "domain": "supply_chain",
      "title": "No install/post-install scripts",
      "guard": true,
      "weight": 5,
      "pass": 6143,
      "fail": 328,
      "warn": 0,
      "notApplicable": 6267,
      "notChecked": 2645,
      "evaluated": 6471,
      "failPct": 5
    },
    {
      "id": "supply.not_typosquatting",
      "domain": "supply_chain",
      "title": "Package name not typosquatting",
      "guard": true,
      "weight": 6,
      "pass": 9076,
      "fail": 7,
      "warn": 0,
      "notApplicable": 6267,
      "notChecked": 33,
      "evaluated": 9083,
      "failPct": 0
    },
    {
      "id": "supply.provenance",
      "domain": "supply_chain",
      "title": "Published with provenance",
      "guard": false,
      "weight": 3,
      "pass": 1308,
      "fail": 0,
      "warn": 5163,
      "notApplicable": 6267,
      "notChecked": 2645,
      "evaluated": 6471,
      "failPct": 0
    },
    {
      "id": "supply.maintainer_established",
      "domain": "supply_chain",
      "title": "Established maintainer",
      "guard": false,
      "weight": 3,
      "pass": 816,
      "fail": 0,
      "warn": 8267,
      "notApplicable": 6267,
      "notChecked": 33,
      "evaluated": 9083,
      "failPct": 0
    },
    {
      "id": "tool.no_injection_markers",
      "domain": "tool_integrity",
      "title": "Tool descriptions free of injection markers",
      "guard": true,
      "weight": 9,
      "pass": 11379,
      "fail": 196,
      "warn": 0,
      "notApplicable": 0,
      "notChecked": 3808,
      "evaluated": 11575,
      "failPct": 2
    },
    {
      "id": "tool.schemas_strict",
      "domain": "tool_integrity",
      "title": "Strict tool input schemas",
      "guard": false,
      "weight": 4,
      "pass": 1097,
      "fail": 0,
      "warn": 10198,
      "notApplicable": 0,
      "notChecked": 4088,
      "evaluated": 11295,
      "failPct": 0
    },
    {
      "id": "tool.no_rug_pull",
      "domain": "tool_integrity",
      "title": "No risky post-publish tool changes (rug-pull)",
      "guard": true,
      "weight": 6,
      "pass": 3745,
      "fail": 6,
      "warn": 687,
      "notApplicable": 10945,
      "notChecked": 0,
      "evaluated": 4438,
      "failPct": 0
    },
    {
      "id": "tool.no_destructive_scope",
      "domain": "tool_integrity",
      "title": "No over-broad / destructive tools",
      "guard": true,
      "weight": 4,
      "pass": 11337,
      "fail": 238,
      "warn": 0,
      "notApplicable": 0,
      "notChecked": 3808,
      "evaluated": 11575,
      "failPct": 2
    },
    {
      "id": "transport.uses_tls",
      "domain": "auth_transport",
      "title": "Remote endpoints use TLS",
      "guard": true,
      "weight": 7,
      "pass": 6117,
      "fail": 0,
      "warn": 0,
      "notApplicable": 9266,
      "notChecked": 0,
      "evaluated": 6117,
      "failPct": 0
    },
    {
      "id": "auth.declared",
      "domain": "auth_transport",
      "title": "Authentication declared",
      "guard": false,
      "weight": 5,
      "pass": 996,
      "fail": 0,
      "warn": 5121,
      "notApplicable": 9266,
      "notChecked": 0,
      "evaluated": 6117,
      "failPct": 0
    },
    {
      "id": "deploy.sandboxed",
      "domain": "auth_transport",
      "title": "Execution sandboxing",
      "guard": false,
      "weight": 3,
      "pass": 2871,
      "fail": 0,
      "warn": 12006,
      "notApplicable": 0,
      "notChecked": 506,
      "evaluated": 14877,
      "failPct": 0
    },
    {
      "id": "dynamic.reachable",
      "domain": "auth_transport",
      "title": "Live endpoint reachable",
      "guard": false,
      "weight": 3,
      "pass": 3299,
      "fail": 0,
      "warn": 1431,
      "notApplicable": 10653,
      "notChecked": 0,
      "evaluated": 4730,
      "failPct": 0
    },
    {
      "id": "dynamic.auth_enforced",
      "domain": "auth_transport",
      "title": "Authentication enforced",
      "guard": false,
      "weight": 4,
      "pass": 404,
      "fail": 0,
      "warn": 113,
      "notApplicable": 14866,
      "notChecked": 0,
      "evaluated": 517,
      "failPct": 0
    },
    {
      "id": "transport.no_bind_all",
      "domain": "auth_transport",
      "title": "No bind-all / exposed debug",
      "guard": false,
      "weight": 3,
      "pass": 12725,
      "fail": 0,
      "warn": 2152,
      "notApplicable": 0,
      "notChecked": 506,
      "evaluated": 14877,
      "failPct": 0
    },
    {
      "id": "maint.actively_maintained",
      "domain": "maintenance",
      "title": "Actively maintained",
      "guard": false,
      "weight": 4,
      "pass": 13676,
      "fail": 0,
      "warn": 344,
      "notApplicable": 0,
      "notChecked": 1363,
      "evaluated": 14020,
      "failPct": 0
    },
    {
      "id": "maint.not_archived",
      "domain": "maintenance",
      "title": "Repository not archived",
      "guard": true,
      "weight": 2,
      "pass": 13884,
      "fail": 136,
      "warn": 0,
      "notApplicable": 0,
      "notChecked": 1363,
      "evaluated": 14020,
      "failPct": 1
    },
    {
      "id": "gov.declares_license",
      "domain": "maintenance",
      "title": "Declares a license",
      "guard": false,
      "weight": 3,
      "pass": 10855,
      "fail": 0,
      "warn": 3165,
      "notApplicable": 0,
      "notChecked": 1363,
      "evaluated": 14020,
      "failPct": 0
    },
    {
      "id": "gov.security_policy",
      "domain": "maintenance",
      "title": "Has a security policy",
      "guard": false,
      "weight": 2,
      "pass": 2295,
      "fail": 0,
      "warn": 12582,
      "notApplicable": 0,
      "notChecked": 506,
      "evaluated": 14877,
      "failPct": 0
    },
    {
      "id": "gov.signed_releases",
      "domain": "maintenance",
      "title": "Signed releases",
      "guard": false,
      "weight": 2,
      "pass": 0,
      "fail": 0,
      "warn": 0,
      "notApplicable": 0,
      "notChecked": 15383,
      "evaluated": 0,
      "failPct": 0
    },
    {
      "id": "reputation.adoption",
      "domain": "maintenance",
      "title": "Adoption & popularity",
      "guard": false,
      "weight": 2,
      "pass": 6854,
      "fail": 0,
      "warn": 8012,
      "notApplicable": 0,
      "notChecked": 517,
      "evaluated": 14866,
      "failPct": 0
    }
  ],
  "popularityStars": [
    {
      "label": "1,000+ stars",
      "servers": 156,
      "avgScore": 62,
      "dfPct": 37
    },
    {
      "label": "100–999 stars",
      "servers": 544,
      "avgScore": 76,
      "dfPct": 17
    },
    {
      "label": "10–99 stars",
      "servers": 1429,
      "avgScore": 75,
      "dfPct": 19
    },
    {
      "label": "Under 10 stars",
      "servers": 11891,
      "avgScore": 82,
      "dfPct": 8
    }
  ],
  "popularityDownloads": [
    {
      "label": "100k+/month",
      "servers": 29,
      "avgScore": 76,
      "dfPct": 21
    },
    {
      "label": "10k–100k/month",
      "servers": 70,
      "avgScore": 78,
      "dfPct": 14
    },
    {
      "label": "1k–10k/month",
      "servers": 1177,
      "avgScore": 80,
      "dfPct": 12
    },
    {
      "label": "Under 1k/month",
      "servers": 4995,
      "avgScore": 85,
      "dfPct": 6
    }
  ],
  "toolSurface": [
    {
      "label": "No tools",
      "servers": 3808,
      "avgScore": 79,
      "dfPct": 7
    },
    {
      "label": "1–5 tools",
      "servers": 3831,
      "avgScore": 82,
      "dfPct": 11
    },
    {
      "label": "6–20 tools",
      "servers": 4328,
      "avgScore": 80,
      "dfPct": 15
    },
    {
      "label": "20+ tools",
      "servers": 3416,
      "avgScore": 76,
      "dfPct": 18
    }
  ],
  "ecosystems": [
    {
      "label": "npm",
      "servers": 6482,
      "avgScore": 84,
      "dfPct": 7
    },
    {
      "label": "repo / remote-only",
      "servers": 5997,
      "avgScore": 74,
      "dfPct": 20
    },
    {
      "label": "pypi",
      "servers": 2626,
      "avgScore": 80,
      "dfPct": 10
    },
    {
      "label": "mcpb",
      "servers": 179,
      "avgScore": 81,
      "dfPct": 9
    },
    {
      "label": "nuget",
      "servers": 80,
      "avgScore": 87,
      "dfPct": 6
    },
    {
      "label": "cargo",
      "servers": 19,
      "avgScore": 85,
      "dfPct": 5
    }
  ],
  "confidence": [
    {
      "label": "High (80%+ verified)",
      "servers": 12811,
      "avgScore": 81,
      "dfPct": 10
    },
    {
      "label": "60–80% verified",
      "servers": 2066,
      "avgScore": 77,
      "dfPct": 5
    },
    {
      "label": "40–60% verified",
      "servers": 1,
      "avgScore": 60,
      "dfPct": 0
    },
    {
      "label": "Low (under 40% verified)",
      "servers": 505,
      "avgScore": 40,
      "dfPct": 100
    }
  ]
}