{
  "v": 1,
  "title": "MCP Tool Risk Labels",
  "slug": "mcp-tool-annotations",
  "edition": "2026-11",
  "label": "November 2026",
  "number": 2,
  "first": false,
  "published": "2026-11-03",
  "data_day": "2026-11-03",
  "license": "CC BY 4.0",
  "sample": {
    "servers_listed": 33100,
    "servers_answering": 20400,
    "servers_with_tools": 20400,
    "distinct_lists": 19700,
    "tools_listed": 353900,
    "tools": 191100,
    "acting_tools": 28000,
    "high_risk_tools": 9200
  },
  "headline": [
    {
      "key": "high_not_destructive",
      "value": 62.8,
      "label": "of tools that delete, move money, run code or change access are not marked destructive"
    },
    {
      "key": "delete_not_destructive",
      "value": 28.2,
      "label": "of tools that delete or erase are not marked destructive"
    },
    {
      "key": "acting_no_annotations",
      "value": 22.4,
      "label": "of tools that change something carry no annotations at all"
    },
    {
      "key": "servers_high_none_marked",
      "value": 37.9,
      "label": "of servers with high-risk tools mark none of them destructive"
    }
  ],
  "overall": {
    "tools_annotated": {
      "key": "tools_annotated",
      "label": "Tools with any annotation",
      "count": 141500,
      "base": 191100,
      "pct": 74
    },
    "levels": [
      {
        "key": "read",
        "label": "Read-only",
        "count": 116400,
        "base": 191100,
        "pct": 60.9
      },
      {
        "key": "change",
        "label": "Needs approval",
        "count": 59000,
        "base": 191100,
        "pct": 30.9
      },
      {
        "key": "high",
        "label": "High risk",
        "count": 15800,
        "base": 191100,
        "pct": 8.2
      }
    ]
  },
  "acting": {
    "n": 28000,
    "states": [
      {
        "key": "no_annotations",
        "label": "No annotations at all",
        "count": 6300,
        "base": 28000,
        "pct": 22.4
      },
      {
        "key": "other_hints",
        "label": "Annotated, but says nothing about changes",
        "count": 120,
        "base": 28000,
        "pct": 0.4
      },
      {
        "key": "says_changes",
        "label": "Says it changes data, destructive not stated",
        "count": 470,
        "base": 28000,
        "pct": 1.7
      },
      {
        "key": "marked_destructive",
        "label": "Marked destructive",
        "count": 7000,
        "base": 28000,
        "pct": 25.1
      },
      {
        "key": "says_not_destructive",
        "label": "Says not destructive",
        "count": 10700,
        "base": 28000,
        "pct": 38.2
      },
      {
        "key": "says_read_only",
        "label": "Says read-only",
        "count": 3400,
        "base": 28000,
        "pct": 12.1
      }
    ]
  },
  "high_risk": {
    "n": 9200,
    "not_marked_destructive": {
      "key": "not_marked_destructive",
      "label": "Not marked destructive",
      "count": 5800,
      "base": 9200,
      "pct": 62.8
    },
    "no_annotations": {
      "key": "no_annotations",
      "label": "No annotations at all",
      "count": 2100,
      "base": 9200,
      "pct": 22.5
    },
    "says_not_destructive_or_read_only": {
      "key": "understated",
      "label": "Labelled read-only or not destructive",
      "count": 3600,
      "base": 9200,
      "pct": 38.7
    }
  },
  "categories": [
    {
      "key": "delete",
      "label": "Delete or erase",
      "high_risk": true,
      "tools": 2800,
      "no_annotations": {
        "key": "no_annotations",
        "label": "No annotations",
        "count": 540,
        "base": 2800,
        "pct": 19.4
      },
      "marked_destructive": {
        "key": "marked_destructive",
        "label": "Marked destructive",
        "count": 2000,
        "base": 2800,
        "pct": 71.8
      },
      "says_not_destructive": {
        "key": "says_not_destructive",
        "label": "Says not destructive",
        "count": 180,
        "base": 2800,
        "pct": 6.5
      },
      "says_changes": {
        "key": "says_changes",
        "label": "Says it changes data, destructive not stated",
        "count": 30,
        "base": 2800,
        "pct": 1
      },
      "says_read_only": {
        "key": "says_read_only",
        "label": "Says read-only",
        "count": 30,
        "base": 2800,
        "pct": 1
      },
      "other_hints": {
        "key": "other_hints",
        "label": "Other hints only",
        "count": null,
        "base": 2800,
        "pct": null,
        "suppressed": true
      }
    },
    {
      "key": "money",
      "label": "Move money",
      "high_risk": true,
      "tools": 1500,
      "no_annotations": {
        "key": "no_annotations",
        "label": "No annotations",
        "count": 380,
        "base": 1500,
        "pct": 25.7
      },
      "marked_destructive": {
        "key": "marked_destructive",
        "label": "Marked destructive",
        "count": 220,
        "base": 1500,
        "pct": 14.9
      },
      "says_not_destructive": {
        "key": "says_not_destructive",
        "label": "Says not destructive",
        "count": 460,
        "base": 1500,
        "pct": 31.2
      },
      "says_changes": {
        "key": "says_changes",
        "label": "Says it changes data, destructive not stated",
        "count": 30,
        "base": 1500,
        "pct": 1.8
      },
      "says_read_only": {
        "key": "says_read_only",
        "label": "Says read-only",
        "count": 390,
        "base": 1500,
        "pct": 26.3
      },
      "other_hints": {
        "key": "other_hints",
        "label": "Other hints only",
        "count": null,
        "base": 1500,
        "pct": null,
        "suppressed": true
      }
    },
    {
      "key": "run",
      "label": "Run code or deploy",
      "high_risk": true,
      "tools": 2200,
      "no_annotations": {
        "key": "no_annotations",
        "label": "No annotations",
        "count": 440,
        "base": 2200,
        "pct": 20.1
      },
      "marked_destructive": {
        "key": "marked_destructive",
        "label": "Marked destructive",
        "count": 320,
        "base": 2200,
        "pct": 14.6
      },
      "says_not_destructive": {
        "key": "says_not_destructive",
        "label": "Says not destructive",
        "count": 590,
        "base": 2200,
        "pct": 26.7
      },
      "says_changes": {
        "key": "says_changes",
        "label": "Says it changes data, destructive not stated",
        "count": 30,
        "base": 2200,
        "pct": 1.3
      },
      "says_read_only": {
        "key": "says_read_only",
        "label": "Says read-only",
        "count": 820,
        "base": 2200,
        "pct": 37
      },
      "other_hints": {
        "key": "other_hints",
        "label": "Other hints only",
        "count": null,
        "base": 2200,
        "pct": null,
        "suppressed": true
      }
    },
    {
      "key": "access",
      "label": "Change access or accounts",
      "high_risk": true,
      "tools": 1400,
      "no_annotations": {
        "key": "no_annotations",
        "label": "No annotations",
        "count": 360,
        "base": 1400,
        "pct": 24.6
      },
      "marked_destructive": {
        "key": "marked_destructive",
        "label": "Marked destructive",
        "count": 720,
        "base": 1400,
        "pct": 49.8
      },
      "says_not_destructive": {
        "key": "says_not_destructive",
        "label": "Says not destructive",
        "count": 230,
        "base": 1400,
        "pct": 16.1
      },
      "says_changes": {
        "key": "says_changes",
        "label": "Says it changes data, destructive not stated",
        "count": null,
        "base": 1400,
        "pct": null,
        "suppressed": true
      },
      "says_read_only": {
        "key": "says_read_only",
        "label": "Says read-only",
        "count": 110,
        "base": 1400,
        "pct": 7.5
      },
      "other_hints": {
        "key": "other_hints",
        "label": "Other hints only",
        "count": null,
        "base": 1400,
        "pct": null,
        "suppressed": true
      }
    },
    {
      "key": "other_high",
      "label": "Other high-risk actions",
      "high_risk": true,
      "tools": 1300,
      "no_annotations": {
        "key": "no_annotations",
        "label": "No annotations",
        "count": 350,
        "base": 1300,
        "pct": 27.4
      },
      "marked_destructive": {
        "key": "marked_destructive",
        "label": "Marked destructive",
        "count": 170,
        "base": 1300,
        "pct": 12.9
      },
      "says_not_destructive": {
        "key": "says_not_destructive",
        "label": "Says not destructive",
        "count": 190,
        "base": 1300,
        "pct": 14.9
      },
      "says_changes": {
        "key": "says_changes",
        "label": "Says it changes data, destructive not stated",
        "count": null,
        "base": 1300,
        "pct": null,
        "suppressed": true
      },
      "says_read_only": {
        "key": "says_read_only",
        "label": "Says read-only",
        "count": 560,
        "base": 1300,
        "pct": 43.8
      },
      "other_hints": {
        "key": "other_hints",
        "label": "Other hints only",
        "count": null,
        "base": 1300,
        "pct": null,
        "suppressed": true
      }
    },
    {
      "key": "send",
      "label": "Send or post",
      "high_risk": false,
      "tools": 3100,
      "no_annotations": {
        "key": "no_annotations",
        "label": "No annotations",
        "count": 810,
        "base": 3100,
        "pct": 25.8
      },
      "marked_destructive": {
        "key": "marked_destructive",
        "label": "Marked destructive",
        "count": 470,
        "base": 3100,
        "pct": 15
      },
      "says_not_destructive": {
        "key": "says_not_destructive",
        "label": "Says not destructive",
        "count": 1200,
        "base": 3100,
        "pct": 36.7
      },
      "says_changes": {
        "key": "says_changes",
        "label": "Says it changes data, destructive not stated",
        "count": 80,
        "base": 3100,
        "pct": 2.5
      },
      "says_read_only": {
        "key": "says_read_only",
        "label": "Says read-only",
        "count": 620,
        "base": 3100,
        "pct": 19.7
      },
      "other_hints": {
        "key": "other_hints",
        "label": "Other hints only",
        "count": null,
        "base": 3100,
        "pct": null,
        "suppressed": true
      }
    },
    {
      "key": "write",
      "label": "Create or edit",
      "high_risk": false,
      "tools": 15700,
      "no_annotations": {
        "key": "no_annotations",
        "label": "No annotations",
        "count": 3400,
        "base": 15700,
        "pct": 21.7
      },
      "marked_destructive": {
        "key": "marked_destructive",
        "label": "Marked destructive",
        "count": 3200,
        "base": 15700,
        "pct": 20.1
      },
      "says_not_destructive": {
        "key": "says_not_destructive",
        "label": "Says not destructive",
        "count": 7900,
        "base": 15700,
        "pct": 50.4
      },
      "says_changes": {
        "key": "says_changes",
        "label": "Says it changes data, destructive not stated",
        "count": 280,
        "base": 15700,
        "pct": 1.8
      },
      "says_read_only": {
        "key": "says_read_only",
        "label": "Says read-only",
        "count": 870,
        "base": 15700,
        "pct": 5.5
      },
      "other_hints": {
        "key": "other_hints",
        "label": "Other hints only",
        "count": 80,
        "base": 15700,
        "pct": 0.5
      }
    }
  ],
  "servers": {
    "n": 19700,
    "any_annotations": {
      "key": "any_annotations",
      "label": "Publish annotations on any tool",
      "count": 12900,
      "base": 19700,
      "pct": 65.5
    },
    "acting_none_annotated": {
      "key": "acting_none_annotated",
      "label": "Have tools that change something, none annotated",
      "count": 1800,
      "base": 7600,
      "pct": 23.7
    },
    "high_none_marked": {
      "key": "high_none_marked",
      "label": "Have high-risk tools, none marked destructive",
      "count": 1900,
      "base": 5000,
      "pct": 37.9
    },
    "with_high": {
      "key": "with_high",
      "label": "Have at least one high-risk tool",
      "count": 5000,
      "base": 19700,
      "pct": 25.3
    }
  },
  "mismatch": {
    "read_only_but_changes": {
      "key": "read_only_but_changes",
      "label": "Say read-only, name says it changes something",
      "count": 2900,
      "base": 191100,
      "pct": 1.5
    },
    "not_destructive_but_risky": {
      "key": "not_destructive_but_risky",
      "label": "Say not destructive, name says high risk",
      "count": 2600,
      "base": 191100,
      "pct": 1.4
    }
  },
  "previous": "2026-10"
}
