GitHits
Search public open-source code, documentation, metadata, vulnerabilities, changelogs, and examples.
Threat-model AI and agentic systems against MITRE ATLAS: surfaces, techniques, controls
Wähle die KI-App, die du nutzt, und kopiere die Einstellungen.
3/3 Prüfungen bestanden · Läuft auf deinem Computer · ✓ Befehle geprüft am 15. Nov. 2026
Zuerst: Welche KI nutzt du?
Wähle deine App, dann erscheinen die Schritte unten.
Klappt mit Claude, aber erst etwas vorbereiten
Installiere zuerst Node.js auf deinem Computer (nur einmal) · Nur in der Claude-App für den Computer (Windows oder Mac), nicht im Web oder auf dem Handy
Kopiere diese Nachricht in einen Claude-Chat. Die KI prüft deinen Rechner, sagt dir, welche Datei sie ändert, und wartet jedes Mal auf dein OK.
Installiere bitte den MCP server MITRE ATLAS MCP Server für Claude auf diesem Rechner, in dieser Reihenfolge: 1) Prüfe Node.js mit node -v. Fehlt es, sag mir, dass ich es von https://nodejs.org/en/download installiere; installiere es nicht selbst. 2) Verwende nur diese Konfiguration (von PopNx MCP geprüft): { "mcpServers": { "mitre-atlas": { "command": "npx", "args": [ "-y", "@imouiche/mitre-atlas-mcp-server" ] } } } 3) Nenne mir den vollständigen Pfad der Datei, die du änderst, oder den Befehl, den du ausführst, und warte auf mein OK. 4) Kein Schlüssel nötig. 5) Führe das Vereinbarte aus und prüfe, dass die Tools von MITRE ATLAS MCP Server wirklich erscheinen.Diese Nachricht enthält keinen Schlüssel. Wird einer gebraucht, bittet dich die KI, ihn selbst in die Datei oder das Feld der App einzufügen.
Schon installiert? Zuerst prüfen · Öffne das Terminal, gib diesen Befehl ein und drücke Enter
node -vMac: ⌘ + Leertaste drücken, Terminal eingeben, Enter
Windows: Start öffnen, Windows PowerShell eingeben, dann Öffnen
Noch nicht installiert: Öffne die offizielle Download-Seite, wähle die LTS-Version und den Klick-Installer: .pkg auf dem Mac · .msi unter Windows. Doppelklicken und bis zum Ende durchklicken. Kein curl-Befehl nötig
Download-Seite von Node.js öffnen ↗
Danach das Terminal schließen, neu öffnen und denselben Befehl erneut ausführen. Es muss eine Versionsnummer erscheinen: node -v
Einmal installieren, gilt für alles, was Node.js braucht
SettingsDeveloperEdit Config
{
"mcpServers": {
"mitre-atlas": {
"command": "npx",
"args": [
"-y",
"@imouiche/mitre-atlas-mcp-server"
]
}
}
}Der Befehl oben funktioniert auch ohne diese Werte. Füge sie nur hinzu, wenn du etwas ändern willst, nach der Beschreibung des Autors.
MITRE_ATLAS_PYTHON Path to a Python 3.12+ interpreter to use directly. When set, no virtualenv is created and the interpreter must already satisfy the dependencies in pyproject.toml.MITRE_ATLAS_RUNTIME_DIR Directory for the cached virtualenv prepared on first run. Defaults to ~/.mitre-atlas-mcp-server/runtime.Die Beschreibungen sind noch im englischen Original.
Menünamen am 11. Nov. 2026 mit der Hilfe von Anthropic abgeglichen · dein Bildschirm kann je nach App-Version leicht abweichen
ChatGPT kann MITRE ATLAS MCP Server noch nicht verbinden
MITRE ATLAS MCP Server läuft auf deinem Computer, aber ChatGPT verbindet nur Server, die im Web laufen
A · Eine App nutzen, die MITRE ATLAS MCP Server verbinden kann
B · Andere in Cybersicherheit, die mit ChatGPT funktionieren
Aus den meistgenutzten derselben Kategorie, nur solche, die per Adresse ohne Schlüssel verbinden
Klappt mit Claude Code, aber erst etwas vorbereiten
Installiere zuerst Node.js auf deinem Computer (nur einmal)
Kopiere diese Nachricht in einen Claude Code-Chat. Die KI prüft deinen Rechner, sagt dir, welche Datei sie ändert, und wartet jedes Mal auf dein OK.
Installiere bitte den MCP server MITRE ATLAS MCP Server für Claude Code auf diesem Rechner, in dieser Reihenfolge: 1) Prüfe Node.js mit node -v. Fehlt es, sag mir, dass ich es von https://nodejs.org/en/download installiere; installiere es nicht selbst. 2) Verwende nur diese Konfiguration (von PopNx MCP geprüft): claude mcp add --scope user mitre-atlas -- npx -y @imouiche/mitre-atlas-mcp-server 3) Nenne mir den vollständigen Pfad der Datei, die du änderst, oder den Befehl, den du ausführst, und warte auf mein OK. 4) Kein Schlüssel nötig. 5) Führe das Vereinbarte aus und prüfe, dass die Tools von MITRE ATLAS MCP Server wirklich erscheinen.Diese Nachricht enthält keinen Schlüssel. Wird einer gebraucht, bittet dich die KI, ihn selbst in die Datei oder das Feld der App einzufügen.
Schon installiert? Zuerst prüfen · Öffne das Terminal, gib diesen Befehl ein und drücke Enter
node -vMac: ⌘ + Leertaste drücken, Terminal eingeben, Enter
Windows: Start öffnen, Windows PowerShell eingeben, dann Öffnen
Noch nicht installiert: Öffne die offizielle Download-Seite, wähle die LTS-Version und den Klick-Installer: .pkg auf dem Mac · .msi unter Windows. Doppelklicken und bis zum Ende durchklicken. Kein curl-Befehl nötig
Download-Seite von Node.js öffnen ↗
Danach das Terminal schließen, neu öffnen und denselben Befehl erneut ausführen. Es muss eine Versionsnummer erscheinen: node -v
Einmal installieren, gilt für alles, was Node.js braucht
Mac: Command+Leertaste drücken und Terminal tippen · Windows: PowerShell öffnen
claude mcp add --scope user mitre-atlas -- npx -y @imouiche/mitre-atlas-mcp-serverMITRE ATLAS MCP Server sollte in der Liste als verbunden erscheinen
Nutze MITRE ATLAS MCP Server und sag mir, was du für mich tun kannst; zeig mir dann eine Sache✓ Wenn Claude Code sagt, dass es MITRE ATLAS MCP Server nutzt, oder ein Werkzeug von MITRE ATLAS MCP Server in der Antwort zeigt, bist du verbunden
Der Befehl oben funktioniert auch ohne diese Werte. Füge sie nur hinzu, wenn du etwas ändern willst, nach der Beschreibung des Autors.
MITRE_ATLAS_PYTHON Path to a Python 3.12+ interpreter to use directly. When set, no virtualenv is created and the interpreter must already satisfy the dependencies in pyproject.toml.MITRE_ATLAS_RUNTIME_DIR Directory for the cached virtualenv prepared on first run. Defaults to ~/.mitre-atlas-mcp-server/runtime.Die Beschreibungen sind noch im englischen Original.
Menünamen am 11. Nov. 2026 mit der Hilfe von Anthropic abgeglichen · dein Bildschirm kann je nach App-Version leicht abweichen
Klappt mit Cursor, aber erst etwas vorbereiten
Installiere zuerst Node.js auf deinem Computer (nur einmal)
Kopiere diese Nachricht in einen Cursor-Chat. Die KI prüft deinen Rechner, sagt dir, welche Datei sie ändert, und wartet jedes Mal auf dein OK.
Installiere bitte den MCP server MITRE ATLAS MCP Server für Cursor auf diesem Rechner, in dieser Reihenfolge: 1) Prüfe Node.js mit node -v. Fehlt es, sag mir, dass ich es von https://nodejs.org/en/download installiere; installiere es nicht selbst. 2) Verwende nur diese Konfiguration (von PopNx MCP geprüft): { "mcpServers": { "mitre-atlas": { "command": "npx", "args": [ "-y", "@imouiche/mitre-atlas-mcp-server" ] } } } 3) Nenne mir den vollständigen Pfad der Datei, die du änderst, oder den Befehl, den du ausführst, und warte auf mein OK. 4) Kein Schlüssel nötig. 5) Führe das Vereinbarte aus und prüfe, dass die Tools von MITRE ATLAS MCP Server wirklich erscheinen.Diese Nachricht enthält keinen Schlüssel. Wird einer gebraucht, bittet dich die KI, ihn selbst in die Datei oder das Feld der App einzufügen.
Schon installiert? Zuerst prüfen · Öffne das Terminal, gib diesen Befehl ein und drücke Enter
node -vMac: ⌘ + Leertaste drücken, Terminal eingeben, Enter
Windows: Start öffnen, Windows PowerShell eingeben, dann Öffnen
Noch nicht installiert: Öffne die offizielle Download-Seite, wähle die LTS-Version und den Klick-Installer: .pkg auf dem Mac · .msi unter Windows. Doppelklicken und bis zum Ende durchklicken. Kein curl-Befehl nötig
Download-Seite von Node.js öffnen ↗
Danach das Terminal schließen, neu öffnen und denselben Befehl erneut ausführen. Es muss eine Versionsnummer erscheinen: node -v
Einmal installieren, gilt für alles, was Node.js braucht
Nutze MITRE ATLAS MCP Server und sag mir, was du für mich tun kannst; zeig mir dann eine Sache✓ Wenn Cursor sagt, dass es MITRE ATLAS MCP Server nutzt, oder ein Werkzeug von MITRE ATLAS MCP Server in der Antwort zeigt, bist du verbunden
Der Befehl oben funktioniert auch ohne diese Werte. Füge sie nur hinzu, wenn du etwas ändern willst, nach der Beschreibung des Autors.
MITRE_ATLAS_PYTHON Path to a Python 3.12+ interpreter to use directly. When set, no virtualenv is created and the interpreter must already satisfy the dependencies in pyproject.toml.MITRE_ATLAS_RUNTIME_DIR Directory for the cached virtualenv prepared on first run. Defaults to ~/.mitre-atlas-mcp-server/runtime.Die Beschreibungen sind noch im englischen Original.
Menünamen am 11. Nov. 2026 mit der Hilfe von Cursor abgeglichen · dein Bildschirm kann je nach App-Version leicht abweichen
Klappt mit VS Code, aber erst etwas vorbereiten
Installiere zuerst Node.js auf deinem Computer (nur einmal)
Kopiere diese Nachricht in einen VS Code-Chat. Die KI prüft deinen Rechner, sagt dir, welche Datei sie ändert, und wartet jedes Mal auf dein OK.
Installiere bitte den MCP server MITRE ATLAS MCP Server für VS Code auf diesem Rechner, in dieser Reihenfolge: 1) Prüfe Node.js mit node -v. Fehlt es, sag mir, dass ich es von https://nodejs.org/en/download installiere; installiere es nicht selbst. 2) Verwende nur diese Konfiguration (von PopNx MCP geprüft): { "servers": { "mitre-atlas": { "type": "stdio", "command": "npx", "args": [ "-y", "@imouiche/mitre-atlas-mcp-server" ] } } } 3) Nenne mir den vollständigen Pfad der Datei, die du änderst, oder den Befehl, den du ausführst, und warte auf mein OK. 4) Kein Schlüssel nötig. 5) Führe das Vereinbarte aus und prüfe, dass die Tools von MITRE ATLAS MCP Server wirklich erscheinen.Diese Nachricht enthält keinen Schlüssel. Wird einer gebraucht, bittet dich die KI, ihn selbst in die Datei oder das Feld der App einzufügen.
Schon installiert? Zuerst prüfen · Öffne das Terminal, gib diesen Befehl ein und drücke Enter
node -vMac: ⌘ + Leertaste drücken, Terminal eingeben, Enter
Windows: Start öffnen, Windows PowerShell eingeben, dann Öffnen
Noch nicht installiert: Öffne die offizielle Download-Seite, wähle die LTS-Version und den Klick-Installer: .pkg auf dem Mac · .msi unter Windows. Doppelklicken und bis zum Ende durchklicken. Kein curl-Befehl nötig
Download-Seite von Node.js öffnen ↗
Danach das Terminal schließen, neu öffnen und denselben Befehl erneut ausführen. Es muss eine Versionsnummer erscheinen: node -v
Einmal installieren, gilt für alles, was Node.js braucht
VS Code fragt nach einer Bestätigung; klicke Install
Nutze MITRE ATLAS MCP Server und sag mir, was du für mich tun kannst; zeig mir dann eine Sache✓ Wenn VS Code sagt, dass es MITRE ATLAS MCP Server nutzt, oder ein Werkzeug von MITRE ATLAS MCP Server in der Antwort zeigt, bist du verbunden
Der Befehl oben funktioniert auch ohne diese Werte. Füge sie nur hinzu, wenn du etwas ändern willst, nach der Beschreibung des Autors.
MITRE_ATLAS_PYTHON Path to a Python 3.12+ interpreter to use directly. When set, no virtualenv is created and the interpreter must already satisfy the dependencies in pyproject.toml.MITRE_ATLAS_RUNTIME_DIR Directory for the cached virtualenv prepared on first run. Defaults to ~/.mitre-atlas-mcp-server/runtime.Die Beschreibungen sind noch im englischen Original.
Menünamen am 11. Nov. 2026 mit der Hilfe von VS Code abgeglichen · dein Bildschirm kann je nach App-Version leicht abweichen
Andere Apps mit MCP, etwa Windsurf, Zed oder Gemini CLI, fügen Server unterschiedlich hinzu. Sieh in der App-Liste nach
JSON-Einstellungen stehen unten unter „Für Entwickler“
Claude Code
claude mcp add --scope user mitre-atlas -- npx -y @imouiche/mitre-atlas-mcp-serverClaude Desktop (claude_desktop_config.json)
{
"mcpServers": {
"mitre-atlas": {
"command": "npx",
"args": [
"-y",
"@imouiche/mitre-atlas-mcp-server"
]
}
}
}Cursor (~/.cursor/mcp.json)
{
"mcpServers": {
"mitre-atlas": {
"command": "npx",
"args": [
"-y",
"@imouiche/mitre-atlas-mcp-server"
]
}
}
}VS Code (mcp.json)
{
"servers": {
"mitre-atlas": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@imouiche/mitre-atlas-mcp-server"
]
}
}
}MITRE_ATLAS_PYTHON envMITRE_ATLAS_RUNTIME_DIR envDie Beschreibungen sind noch im englischen Original.
Diese Einstellungen werden aus dem Registry-Eintrag des Entwicklers erzeugt. Wenn in der README etwas anderes steht, folge der README.
npm: @imouiche/mitre-atlas-mcp-serverBasierend darauf, wie sich dieser Server verbindet, und auf der eigenen Doku jeder App, geprüft am 10. Nov. 2026.
Laufen auf deinem Computer in
ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast
Läuft auf deinem Computer; die Tool-Liste erscheint nach der Installation in deiner KI-App.
Wir prüfen Informationen, die jeder sehen kann; den Code haben wir nicht gelesen. Checks, die nicht zutreffen, werden nicht mitgezählt. · Geprüft am 15. Nov. 2026
Der Registry-Name wurde mit dem GitHub-Konto imouiche bestätigt, dem das Repo gehört
Code zuletzt geändert: gestern
Nutzt Apache-2.0
Dieser Server läuft auf deinem Computer; es gibt keinen Endpunkt im Internet
Läuft auf deinem Computer und nutzt stattdessen lokale Einstellungen
Läuft auf deinem Computer; Tool-Listen können wir nur von Endpunkten im Internet lesen
Noch nicht geprüft
Fragen, Tipps teilen oder melden, dass etwas nicht geht. Sortiert nach „hilfreich“.
Noch keine Beiträge. Stell die erste Frage oder teile einen Tipp.
Beiträge hier stammen von Nutzern, nicht vom PopNx-Team.
Noch keine Bewertungen
Verglichen mit allen aktiven Servern dieser Kategorie in der Registry. Sterne zählen nur, wenn dem Herausgeber das Repo gehört.
Er hat 3 von 3 zutreffenden Basischecks bestanden. Den Code haben wir nicht gelesen. Bevor du einen Schlüssel oder Token hinzufügst, sieh nach, welche Zugriffe der Server verlangt, und nutze einen Schlüssel, der nur die Berechtigungen hat, die du brauchst.
Die Registry nennt keinen erforderlichen Schlüssel, manche Server bitten dich aber bei der ersten Nutzung, dich anzumelden.
Er läuft auf deinem Computer. Deine KI-App startet ihn bei Bedarf, und die Daten laufen nicht über die Server des Entwicklers (außer der Server ruft selbst einen Onlinedienst auf).
Das GitHub-Repo wurde zuletzt gestern geändert, und die neueste Version (0.1.2) kam heute in die Registry.
Apps, die MCP unterstützen, etwa Claude Desktop, Claude Code, Cursor und VS Code. Außerdem brauchst du Node.js auf deinem Computer.
In derselben Kategorie: GitHits, Dependency Management MCP Server, Snyk MCP, Draugr, Spotdb
Gleiche Kategorie, andere Entwickler, Befehle bereits geprüft. Offizielle zuerst, dann nach Sternen.
So liest du eine Karte:↓ Downloads pro Wochei★ GitHub-SterneiDrei Säulen: Bewertungen · Checks · NutzungiAktualisiert = neueste Version in der Registry veröffentlichti
Search public open-source code, documentation, metadata, vulnerabilities, changelogs, and examples.
Sonatype component intelligence: versions, security analysis, and Trust Score recommendations
Easily find and fix security issues in your applications leveraging Snyk platform capabilities.
Security scanning for AI agents: SAST, SCA, secrets, IaC, DAST, ranked by real risk.
Ephemeral data sandbox for AI workflows with guardrails and security
Unverändert aus dem Repo des Entwicklers übernommen. PopNx MCP hat den Inhalt weder geprüft noch empfiehlt es ihn. HTML, Bilder und Skripte wurden entfernt. Links führen von dieser Website weg.
17 MCP tools that threat-model AI and agentic systems against [MITRE ATLAS](https://atlas.mitre.org/)
Install · The idea · Tools · Data governance · Who owns the fix · Example
Describe your system's architecture - an agent with tool access over a RAG corpus, say - and get back the ATLAS techniques that apply, the mitigations that cover them, the compounding risks your specific combination of surfaces creates, and the real-world incidents that have already happened to systems shaped like yours.
This is not a lookup wrapper around the ATLAS matrix. Lookup is included, but the point is the mapping from *how you built it* to *what can be done to it*.
Pinned to ATLAS v2026.10: 16 tactics, 221 techniques, 44 mitigations, 77 case studies. Mitigations are enriched with control ownership from the CoSAI Risk Map, and techniques cross-map to ATT&CK, STRIDE, OWASP Top 10 for LLM and NIST AI RMF.
Published in the official [MCP Registry](https://registry.modelcontextprotocol.io/?q=mitre-atlas-mcp-server) as `io.github.imouiche/mitre-atlas-mcp-server`.
npx -y @imouiche/mitre-atlas-mcp-server
Requires Node 18+ and Python 3.12+ on PATH. On first run it prepares a private virtualenv under ~/.mitre-atlas-mcp-server/runtime, which takes a few seconds: both datasets are already in the package, so only mcp and pyyaml are installed and nothing is downloaded. Nothing touches your system or active Python environment.
| Variable | Effect |
|---|---|
MITRE_ATLAS_PYTHON | Use this interpreter directly and skip virtualenv creation. It must already satisfy the dependencies in pyproject.toml. |
MITRE_ATLAS_RUNTIME_DIR | Relocate the cached virtualenv. |
The PyPI release is not published yet, so these do not work today:
uvx mitre-atlas-mcp-server # pending PyPI
pip install mitre-atlas-mcp-server # pending PyPI
uvx will become the recommended path once the package is on PyPI, since it needs no Node at all.
{
"mcpServers": { "mitre-atlas": { "command": "npx", "args": ["-y", "@imouiche/mitre-atlas-mcp-server"] } } }
ATLAS is organised by adversary intent - tactics and techniques. Engineers describe systems by architecture. That mismatch is why ATLAS is harder to apply than it should be, and it is the gap this server closes.
It defines ten surfaces, each a yes/no question about your architecture, each anchored to the ATLAS techniques that become reachable when the answer is yes:
| Surface | Applies when |
|---|---|
untrusted_input | Content from outside your trust boundary reaches the model |
tool_use | The model's output drives function, shell, HTTP, or MCP calls |
rag | Retrieved documents land in the context window |
agent_memory | State persists across turns or sessions |
agent_config | Config, system prompts, or tool manifests are reachable |
multi_agent | Agents delegate to, spawn, or message other agents |
rendered_output | Output is rendered as markdown, HTML, or links |
inference_api | A model endpoint is reachable over the network |
model_supply_chain | Weights, adapters, datasets, or MCP servers come from a registry |
training_pipeline | You train or fine-tune on data you collect |
The surfaces that matter most are the ones that combine. untrusted_input alone is a content-filtering problem. untrusted_input + tool_use is the agentic equivalent of remote code execution: injected text becomes attacker-chosen actions. profile_ai_system reports those compounds explicitly rather than leaving you to infer them from two separate lists.
ATLAS v2026.10 tags 148 of its 221 techniques as applying to Agentic AI, which is what makes this framing tractable - the agentic coverage is MITRE's, not invented here.
| Tool | Does |
|---|---|
list_surfaces | The ten surfaces, with the question that decides each. Start here |
profile_ai_system | Surfaces in → techniques ranked by exposure, mitigations ranked by coverage, compound risks, and techniques ATLAS has no mitigation for |
map_surface_to_techniques | One surface at a time, for drilling in |
find_analogous_incidents | Case studies ranked by technique overlap, each naming the overlapping techniques so the relevance is checkable |
| Tool | Does |
|---|---|
get_atlas_info | Release served and collection sizes |
list_tactics | All 16 tactics with technique counts |
get_technique | One technique: tactics, sub-techniques, mitigations, case studies, ATT&CK parallel |
search_techniques | Text search, filterable by platform and maturity |
get_techniques_by_tactic | By tactic id or name |
get_mitigation | One mitigation, with everything it covers |
get_mitigations_for_technique | Mitigations for a technique, inheriting from the parent when a sub-technique has none |
get_case_study | One case study with its ordered attack flow - each step's tactic, technique, and what the operator actually did |
search_case_studies | By text, by type (27 Incident, 50 Exercise), or by technique employed |
get_software | Attacker tooling ATLAS catalogues |
| Tool | Does |
|---|---|
map_atlas_to_attack | The ATT&CK technique an ATLAS technique parallels |
map_attack_to_atlas | The reverse, for teams already modelling against ATT&CK |
map_technique_to_frameworks | ATT&CK, STRIDE, OWASP Top 10 for LLM and NIST AI RMF for one technique, plus the CoSAI risks and controls behind them |
ATLAS asserts an ATT&CK parallel for 48 of 221 techniques. Every tool reports its coverage figure, so an empty result is never mistaken for "no parallel exists".
Resources: atlas://matrix (the matrix as markdown), atlas://surfaces (the taxonomy).
Prompts: threat_model_this_agent, review_mcp_tool_surface.
ATLAS tells you what to do about a technique. It does not tell you who does it.
So every mitigation this server returns is enriched from the CoSAI Risk Map (Coalition for Secure AI, an OASIS open project), which maps its engineering controls to ATLAS mitigation ids. Where a mapping exists you also get the control, the personas who own it, and the components it applies to:
AML.M0004 Limit AI Service Query Volume and Rate
CoSAI control : Agent Execution Bounds owners : Agentic Platform and Framework Providers, Application Developer, AI Platform Provider components : Agent Reasoning Core, Orchestration Input Handling, Orchestration Output Handling
That turns a ranked mitigation list into assignable work, which is the point of threat-modelling a system you are actually building.
Coverage, stated plainly. 13 of ATLAS's 44 mitigations have a CoSAI control, and all 13 cited ids resolve against the pinned ATLAS release. Per surface, roughly a quarter to a half of returned mitigations carry an owner; agent_config currently has none. Where CoSAI maps nothing, the tools say so rather than returning a silent blank.
Threat-model this: a customer-support agent that reads incoming email,
retrieves from our knowledge base, and can issue refunds through our billing
API. It remembers prior conversations per customer.
That is four surfaces, so profile_ai_system(["untrusted_input", "rag", "tool_use", "agent_memory"]). Actual output, abridged:
27 techniques in scope, across 11 tactics. 18 mitigations. 5 techniques ATLAS has no mitigation for.
It leads with what the *combination* creates, not the individual techniques:
untrusted_input + tool_use
Injected content becomes attacker-chosen tool calls, the agentic equivalent of remote code execution. Treat every tool the agent can reach as callable by whoever authors the untrusted content.
rag + tool_use Anyone who can write into the indexed corpus can steer tool calls without ever interacting with the system directly.
untrusted_input + agent_memory A single injection persists across sessions and can carry a delayed trigger, so the payload outlives the request that delivered it.
Then the mitigations, ranked by how much they cover, each naming who implements it:
AML.M0020 covers 14 Generative AI Guardrails
owners: AI Model Serving, AI Platform Provider, Agentic Platform and Framework Providers AML.M0035 covers 11 AI Red Team AML.M0024 covers 7 AI Telemetry Logging and Monitoring owners: AI Model Serving, AI Platform Provider, Agentic Platform and Framework Providers
Then find_analogous_incidents for the same surfaces, ranked by how many in-scope techniques each case study actually employed:
AML.CS0063 overlap 10 Prompt-Based Attacks Against Gemini via Calendar Invitations
AML.CS0026 overlap 9 Financial Transaction Hijacking with M365 Copilot as an Insider AML.CS0066 overlap 9 ZombieAgent: Data Exfiltration Attack on ChatGPT AML.CS0024 overlap 7 Morris II Worm: RAG-Based Attack
A support agent that can move money, matched against a documented financial transaction hijack with nine techniques in common. get_case_study returns any of these as an ordered attack flow: each step's tactic, the technique used, and what the operator actually did.
Security tooling is only as trustworthy as the data under it, and most MCP servers fetch theirs at call time from whatever the upstream API returns today. This one does not. Both datasets ship inside the package, pinned to an exact release, and the server makes no network calls while serving.
| Property | How it holds |
|---|---|
| Reproducible | Two identical calls return identical answers. The data cannot shift under a running assessment. |
| Offline | Runs air-gapped. Nothing is fetched at startup or per call; verified by there being no HTTP client anywhere in src/. |
| Pinned and attributable | ATLAS at v2026.10 recorded in RELEASE; CoSAI at commit 622605a recorded in COMMIT. Both Apache-2.0, attributed in NOTICE. |
| Integrity-checked | 123 tests assert collection sizes, that every technique id in the surface taxonomy resolves, and that every ATLAS id CoSAI cites exists in the pinned release. |
| No third-party reach | No telemetry, no analytics, no credentials, no API keys. Nobody outside this repository can change what the server reports. |
| Reviewed updates | A weekly workflow pulls upstream, runs the suite and opens a pull request only when something changed. Refreshes are merged deliberately, nev