ShieldLM DeBERTa MCP Tools
детектор отравленных описаний MCP-инструментов
Экспериментальный классификатор от dmilush для проверки описаний MCP-инструментов, параметров и серверов. Ищет описания, которые пытаются дать агенту скрытую инструкцию — например, прочитать ~/.ssh, отменить запрос пользователя или сначала вызвать другой инструмент. Это файнтюн dmilush/shieldlm-deberta-base на английском и ещё восьми языках; около 0.18B параметров.
⚙ Ключевые особенности
- 🛡 Ловит poisoned tool descriptions: инструкции в описании инструмента, параметра или сервера, которые влияют на агента.
- ⚙ Сделан как опциональный ML-детектор для статического сканера
shieldlm-mcp; есть CLI-командаshieldlm-mcp scan . --detector shieldlm-tools. - 🌐 Обучен на описаниях инструментов на английском, китайском, японском, корейском, русском, немецком, испанском, французском и португальском.
- 🔍 Базовая модель плохо подходит для описаний инструментов: при ~1% ложных срабатываний почти не ловила атаки, этот файнтюн ловит большинство.
- ⚠ Скоры не калиброваны; в карточке есть таблица порогов под бюджет ложных срабатываний 0.5–5%.
💻 Пример
import torch
from transformers import AutoModelForSequenceClassification, AutoTokenizer
name = 'dmilush/shieldlm-deberta-mcp-tools'
tok = AutoTokenizer.from_pretrained(name)
model = AutoModelForSequenceClassification.from_pretrained(name).eval()
THRESHOLD = 0.004264639 # ~1% FPR
enc = tok('Returns the current weather for a given city.', return_tensors='pt')
p = torch.softmax(model(**enc).logits, dim=-1)[0, 1].item()
Подробнее
На независимых атаках при пороге 1%: 89.1% (англ.) и 71.9% (переводы); на MCPTox с отложенными серверами — 100%. Ложные срабатывания на реальных описаниях — 1.7% (англ.) и 1.9% (другие языки).Нужен transformers 5.0–5.3: в 5.4+ модель может грузиться без предупреждения, но выдавать одинаковые скоры. Флаг — повод проверить описание, не доказательство атаки.
Не ловит атаки без инструкций, нативные неанглийские атаки и стили, далёкие от обучающих данных.








Комментарии