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 集成