MCP server: MITRE ATT&CK® -> NIST 800-53r5 -> DISA STIG fix/check steps, mitigations and detections
A local MCP (Model Context Protocol) server that lets an AI assistant, such as GitHub Copilot in VS Code or Claude Code, answer security questions from published guidance instead of from memory. Name a MITRE ATT&CK® technique or threat actor and the system you care about, and the answer gives you:
It does not scan or connect to your systems. Its answers come from a knowledge base, a local database of about 6 MB built from those public sources, which you install once. The user guide explains what it does and shows three ways to use it: as a security controls assessor, a system owner, or a SOC analyst.
stig-mcp is published on PyPI and runs through uvx,
which comes with uv.
Install uv, then check that
uvx --version runs in a new terminal. Restart VS Code or Claude Code after installing uv
so it sees the new PATH.
Click this badge. VS Code opens and offers to install stig-mcp; choose Install.
Open Copilot Chat and set the mode dropdown to Agent. MCP tools are not available in Ask or Edit mode.
Ask: Install the stig-mcp knowledge base. This is a one-time download of about 6 MB.
Allow the tool when VS Code asks.
If that doesn't work, see troubleshooting or setting up VS Code by hand.
Inside a Claude Code session (2.1.275 or later), run:
/plugin install stig-mcp --marketplace jeneric/STIG-MCP
Ask: Install the stig-mcp knowledge base. This is a one-time download of about 6 MB.
Allow the tool when Claude Code asks.
If that doesn't work, see troubleshooting or setting up Claude Code by hand.
With the knowledge base installed, try:
What DISA STIG steps mitigate T1078 on Windows 11?Which ATT&CK techniques does APT29 use?Which STIG benchmarks apply to RHEL 9?What can I detect of APT29 on Windows Server 2022 with Security and Sysmon logs?More example prompts are in the user guide, with how to get more out of it and how to make sure the agent answers from the server.
Use this only if you are not using VS Code or Claude Code. Any client that launches a local
(stdio) MCP server works with this configuration, shown in the common mcpServers shape:
{
"mcpServers": {
"stig-mcp": {
"command": "uvx",
"args": ["stig-mcp"],
"env": { "UV_SYSTEM_CERTS": "true", "UV_NATIVE_TLS": "true" }
}
}
}
The two environment variables let uv download stig-mcp behind a TLS-inspecting proxy. They are harmless on most other hosts; that section names the one exception. Then ask the agent to install the stig-mcp knowledge base, as in the quick start.
docs/install.md has the details:
check_sources or install_knowledge_base is
called. Then it sends HTTPS GET requests to api.github.com (this repository's release
listing) and github.com (/jeneric/STIG-MCP/releases/download/...), which redirects to
release-assets.githubusercontent.com or objects.githubusercontent.com. Any other URL, a
redirect included, is refused. Nothing is uploaded, and there is no telemetry.
install_knowledge_base given a file path and its SHA-256 requests nothing at all.stig-mcp-install-kb contacts the same hosts, and nothing at all with --file.stig-mcp-fetch, used only to build the knowledge base yourself, downloads from
raw.githubusercontent.com and api.github.com (MITRE ATT&CK, the CTID mapping, the NIST
800-53 catalog) and from dl.dod.cyber.mil (DISA).PRIVACY.md states what each of these requests sends and what is stored locally.
The knowledge base aggregates MITRE ATT&CK, CTID mapping, DISA STIG, DISA CCI list, and NIST OSCAL content. See NOTICE for attribution and licensing obligations and licenses/apache-2.0.txt for the Apache 2.0 license text that notice requires.
Developed with the assistance of Claude Code (Anthropic). All changes were reviewed and tested by the maintainer.
Source-derived launch command. Check the maintainer’s required arguments and credentials before running:
uvx stig-mcpMerge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.
{
"mcpServers": {
"io-github-jeneric-stig-mcp": {
"command": "uvx",
"args": [
"stig-mcp"
]
}
}
}Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.
Claude Desktop setup referencestig-mcppypiio.github.jeneric/stig-mcp works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.
~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.~/.cursor/mcp.jsonRestart Cursor for changes to take effect..vscode/mcp.jsonReload VS Code window for changes to take effect.~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect..mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.