MITRE ATLAS MCP Server

io.github.imouiche由 GitHub 帳號 imouiche 發布v0.1.0更新於 Nov 14, 2026

Threat-model AI and agentic systems against MITRE ATLAS: surfaces, techniques, controls

發布方自己的服務:Red Atlas Api

已驗證STDIO僅桌面知識與記憶安全與監控

概覽

AI 產生的概覽

依 MITRE ATLAS 對 AI 與代理式系統進行威脅建模,把系統架構的攻擊面對應到適用技術、緩解措施與真實事件。

可以做什麼
  • 將系統架構剖析為依暴露度排序的技術、依覆蓋度排序的緩解措施、複合風險,並列出驅動對應的十個攻擊面
  • 深入檢視單一攻擊面對應的技術,並依技術重疊度找出類似案例
  • 查詢 ATLAS 參考資料:版本資訊、戰術、技術、緩解措施、含攻擊流程的案例研究以及攻擊者工具
  • 依文字、平台、成熟度、類型或所用技術搜尋技術與案例研究
  • 把技術交叉對應到 ATT&CK、STRIDE、OWASP LLM Top 10 與 NIST AI RMF,並附上 CoSAI 控制項歸屬
  • 以資源形式讀取矩陣與攻擊面分類,並使用內建的威脅建模提示詞
適用情境
適合在設計或審查 AI 與代理式系統時使用,希望依固定版本的 ATLAS 取得結構化威脅模型,包括「不可信輸入加工具呼叫」這類功能組合帶來的風險。也適合已依 ATT&CK 建模、需要 AI 相關對照的團隊。
執行需求
透過 npx 以 stdio 在本機執行,需要 PATH 中有 Node 18+ 與 Python 3.12+。首次執行會在 ~/.mitre-atlas-mcp-server/runtime 下建立私有虛擬環境。可用 MITRE_ATLAS_PYTHON 指定已滿足相依套件的解譯器,用 MITRE_ATLAS_RUNTIME_DIR 變更快取位置。執行時不需網路,也不需要驗證。
安裝前請注意
首次執行會建立虛擬環境並安裝套件,會寫入執行時目錄(預設位於使用者家目錄下)。若設定 MITRE_ATLAS_PYTHON,該解譯器必須已滿足相依套件。資料隨套件內建並固定版本,結果反映打包的 ATLAS 與 CoSAI 版本,而非上游最新狀態。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 MITRE ATLAS MCP Server,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

MITRE ATLAS MCP Server

Threat-model AI and agentic systems against MITRE ATLAS.

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. 17 tools. No network access at runtime; both datasets are vendored.

Install

bash
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.

VariableEffect
MITRE_ATLAS_PYTHONUse this interpreter directly and skip virtualenv creation. It must already satisfy the dependencies in pyproject.toml.
MITRE_ATLAS_RUNTIME_DIRRelocate the cached virtualenv.

The PyPI release is not published yet, so these do not work today:

bash
uvx mitre-atlas-mcp-server            # pending PyPIpip 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.

Claude Desktop / Claude Code

json
{  "mcpServers": {    "mitre-atlas": {      "command": "npx",      "args": ["-y", "@imouiche/mitre-atlas-mcp-server"]    }  }}

The idea

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:

SurfaceApplies when
untrusted_inputContent from outside your trust boundary reaches the model
tool_useThe model's output drives function, shell, HTTP, or MCP calls
ragRetrieved documents land in the context window
agent_memoryState persists across turns or sessions
agent_configConfig, system prompts, or tool manifests are reachable
multi_agentAgents delegate to, spawn, or message other agents
rendered_outputOutput is rendered as markdown, HTML, or links
inference_apiA model endpoint is reachable over the network
model_supply_chainWeights, adapters, datasets, or MCP servers come from a registry
training_pipelineYou 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.

Tools

Threat modelling

ToolDoes
list_surfacesThe ten surfaces, with the question that decides each. Start here
profile_ai_systemSurfaces in → techniques ranked by exposure, mitigations ranked by coverage, compound risks, and techniques ATLAS has no mitigation for
map_surface_to_techniquesOne surface at a time, for drilling in
find_analogous_incidentsCase studies ranked by technique overlap, each naming the overlapping techniques so the relevance is checkable

Reference

ToolDoes
get_atlas_infoRelease served and collection sizes
list_tacticsAll 16 tactics with technique counts
get_techniqueOne technique: tactics, sub-techniques, mitigations, case studies, ATT&CK parallel
search_techniquesText search, filterable by platform and maturity
get_techniques_by_tacticBy tactic id or name
get_mitigationOne mitigation, with everything it covers
get_mitigations_for_techniqueMitigations for a technique, inheriting from the parent when a sub-technique has none
get_case_studyOne case study with its ordered attack flow - each step's tactic, technique, and what the operator actually did
search_case_studiesBy text, by type (27 Incident, 50 Exercise), or by technique employed
get_softwareAttacker tooling ATLAS catalogues

Cross-framework

ToolDoes
map_atlas_to_attackThe ATT&CK technique an ATLAS technique parallels
map_attack_to_atlasThe reverse, for teams already modelling against ATT&CK
map_technique_to_frameworksATT&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.

Who owns the fix

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.

Example

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 untrusted_input + rag + tool_use + agent_memory. profile_ai_system returns the ranked techniques, and leads with the three compounds - injection-to-tool-call, corpus-write-to-tool-call, and persistent injection with delayed triggers - then the mitigations in coverage order, then the real incidents that have already followed that shape.

Data

Two datasets are vendored, so the server makes no network calls at runtime.

ATLAS at src/mitre_atlas_mcp/data/atlas/ATLAS.yaml (1.1MB), pinned to the release tag in RELEASE:

bash
python scripts/refresh_data.py --release v2026.10uv run pytest        # the counts and taxonomy ids are asserted

CoSAI Risk Map at src/mitre_atlas_mcp/data/cosai/ (348KB), pinned to the upstream commit in COMMIT:

bash
python scripts/refresh_cosai.py --latestuv run pytest        # the ATLAS ids CoSAI cites are asserted to resolve

Neither dataset is fetched at runtime, and that is deliberate. Shipping the data keeps results reproducible, lets the server run air-gapped, and means no third party can change what it reports between two identical calls. For a security tool that integrity property is worth more than freshness measured in days.

Staying current is automated instead: .github/workflows/refresh-data.yml runs weekly, pulls upstream, runs the suite against the refreshed data and opens a pull request only when something changed. Accepting a refresh stays a reviewed decision, because upstream can renumber an id the surface taxonomy depends on. get_atlas_info reports both pins, so a caller can always see which releases are being served.

The tests assert collection sizes and that every technique id in the surface taxonomy resolves, so a renumbered or retired technique fails the suite instead of silently shortening a threat model.

Development

bash
uv syncuv run pytestuv run python -m mitre_atlas_mcp.server    # stdio

Licence

Apache-2.0. The ATLAS dataset is © 2021–2026 MITRE, redistributed under Apache-2.0 - see NOTICE. This project is not affiliated with or endorsed by MITRE.

Issues and pull requests are welcome at github.com/imouiche/mitre-atlas-mcp-server.

Author

Inoussa Mouiche, Ph.D. - University of Windsor, WASP Lab. Research in threat intelligence automation, machine learning, agent AI security, and LLM-powered security operations.

GitHub · LinkedIn · Google Scholar · [email protected]

Also the author of the MITRE ATT&CK MCP Server, which covers conventional adversary TTPs; this server covers the AI-specific ones and cross-maps between the two.

來源:README.md,提交 a9548ee

工具

0
SourceWeft 曾在隔離沙箱中以無憑證方式啟動該軟體包一次,以列出其工具,但未能完成:伺服器未能啟動。

版本歷史

1
  1. v0.1.0最新Nov 14, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

其他 Atlas 整合