Threat Modeling MCP Server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Threat Modeling MCP Server Threat model this project using the threat modeling MCP server"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Threat Modeling MCP Server
A Model Context Protocol (MCP) server for comprehensive threat modeling with guided code validation.
Table of Contents
Related MCP server: threatmodel-mcp
Overview
This server provides tools for threat modeling, including business context analysis, architecture analysis, threat actor analysis, trust boundary analysis, asset flow analysis, code security validation and comprehensive report generation.
Architecture and Approach
This MCP Server calls the existing agent's LLM instead of making an external API or network call to a different service. It relies on existing client's LLM which could be Amazon-Q, Kiro or Cline.
This Threat Modeling MCP Server has three main functionalities:
Threat modeling phase or state management and prompt controlling.
Prompts steering, which controls the agent to go through a methodic approach to threat modeling using built in definitions of business risks, exposures, threat actors and use STRIDE in sequential order.
Structured input validation and phase-completion checks that support an actionable threat model report.
It also has tools to generate a final report in both Markdown and JSON exportable formats.
Key Advantages of this approach
This threat model follows the standard STRIDE approach to threat modeling in phases rather than quick conclusion of assets, boundaries and threats which can lead to hallucination or low quality output.
There is an effort by LLM to understand the business context of the project and make valid assumptions which can be controlled by the user.
This local server relies on the MCP client's configured LLM (Cline, Amazon Q, Kiro) rather than calling a separate model API. Data exposure depends on the client and any other MCP servers the client invokes.
The server keeps the working threat model in memory for the current process. Export tools can write JSON and Markdown snapshots to a
.threatmodeldirectory, but those snapshots are not automatically loaded in a later session.The code-validation tool records evidence supplied by the client after it inspects the implementation, applies status transitions atomically, and fails the phase closed until every current threat and mitigation is covered.
Quick Start Prompts and Examples on how to threat model with this MCP server
Note: Before using these prompts, you must first complete the Installation process to set up the MCP server.
Start a threat model
"Threat model this project using the threat modeling MCP Server"Being specific in the prompt to use the threat modeling MCP Server will make sure the client (Cline/Kiro/etc) will follow the exact phases and methodology rather than taking short cut path and introduce hallucination in results.
Threat model a subproject or reduce the scope to a sub folder
"Threat model this subfolder using the threat modeling MCP Server"Running it on a subfolder limits the intended analysis scope. To save exports there, request an output path inside that subfolder; the export location is not inferred automatically from the analysis scope.
Save the result of threat model
"Save the threat model report"Validate the completeness of the threat modeling process
"Please complete all the phases in the threat model plan and then generate the final report."Feed an architecture diagram image as input
"Threat model this project using the threat model MCP server and consider this architecture_image.png attached for this review"Attempt remediating the threats
"Can you see if you can implement mitigation controls in the code based on the threats reported in the threat model"Regenerate threat model based on code fixes
"Can you updated the threat model based on the code fixes which mitigated the reported threats"More examples
# Set up context
"Set business context for an e-commerce payment system"
# Add architecture
"Add a web server component using AWS EC2"
"Add a database component using AWS RDS"
# Identify threats
"Add a threat where an attacker with network access performs SQL injection"
# Add mitigations
"Add a mitigation for input validation"
# Export results
"Export the threat model to my_model.tc.json"Key Features
Comprehensive Threat Modeling: Structured approach to identifying, evaluating, and addressing security risks
Evidence-Based Code Validation: Records implementation evidence, updates statuses, and produces a deterministic report
Business Context Analysis: Understand the business value and criticality of the system
Architecture Analysis: Document the system's technical architecture and data flows
Threat Actor Analysis: Identify potential adversaries and assess their capabilities
Trust Boundary Analysis: Identify trust zones and validate security controls at boundaries
Asset Flow Analysis: Track critical assets through the system
Threat Identification: Systematically identify potential threats using STRIDE methodology
Mitigation Planning: Develop strategies to address identified threats
Compact Domain Managers: Action-based tools for assumptions, architecture, actors, boundaries, assets, threats, and mitigations
Threat Model Guide: Step-by-step guidance through the threat modeling process
Data Model Inspection: One tool for listing enum models and inspecting accepted values
Prerequisites
Before installing the Threat Modeling MCP Server, ensure you have the following requirements:
Installation Requirements
Install
uvxfrom Astral or the GitHub READMEuvx is part of the uv package manager
Verify installation:
uvx --version
Installation
Once you have uvx installed and verified to be working, add the below configuation to your mcp.json config file. Depending on the what type of client your are using (kiro/cline/amazon-q) the location of this mcp.json will be different. Once you add the config and restart your IDE, the Threat Modeling MCP Server will be automatically be installed directly from this GitHub repository using uvx.
Note: The tools used by this mcp server for threat modeling are already added to the
autoApprovefor ease of user experience which enables seamless operation without manual approval prompts for each tool call. All tools are internal to the server and do not make external API calls. If you want to review each of the tools and approve it per invocation, then you need to replace the autoApprove array with this:"autoApprove": []
Configuration
Add the following to your MCP client configuration:
For Amazon Q (~/.aws/amazonq/mcp.json):
{
"mcpServers": {
"threat-modeling-mcp-server": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/awslabs/threat-modeling-mcp-server.git",
"threat-modeling-mcp-server"
],
"env": {
"FASTMCP_LOG_LEVEL": "ERROR"
},
"disabled": false,
"autoApprove": ["manage_workflow","export_threat_model","manage_system_context","manage_assumptions","manage_architecture","manage_threat_actors","manage_trust_boundaries","manage_asset_flows","manage_threats","inspect_data_models","manage_code_validation"]
}
}
}For VSCode Cline:
{
"mcpServers": {
"threat-modeling-mcp-server": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/awslabs/threat-modeling-mcp-server.git",
"threat-modeling-mcp-server"
],
"env": {
"FASTMCP_LOG_LEVEL": "ERROR"
},
"disabled": false,
"autoApprove": ["manage_workflow","export_threat_model","manage_system_context","manage_assumptions","manage_architecture","manage_threat_actors","manage_trust_boundaries","manage_asset_flows","manage_threats","inspect_data_models","manage_code_validation"],
"timeout": 60,
"type": "stdio"
}
}
}For Kiro (~/.kiro/settings/mcp.json):
{
"mcpServers": {
"threat-modeling-mcp-server": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/awslabs/threat-modeling-mcp-server.git",
"threat-modeling-mcp-server"
],
"env": {
"FASTMCP_LOG_LEVEL": "ERROR"
},
"disabled": false,
"autoApprove": ["manage_workflow","export_threat_model","manage_system_context","manage_assumptions","manage_architecture","manage_threat_actors","manage_trust_boundaries","manage_asset_flows","manage_threats","inspect_data_models","manage_code_validation"]
}
}
}Running with Kiro CLI
To run the MCP server via kiro-cli with all tools auto-approved:
kiro-cli chat --trust-tools="@threat-modeling-mcp-server/*"This trusts all tools from the threat-modeling-mcp-server MCP server, so you won't be prompted to approve each tool call individually.
Running with the Custom Kiro CLI Agent
This repository includes a pre-configured Kiro CLI agent that covers nine numbered phases plus the optional Phase 7.5 code-validation step. The agent configuration is in .kiro/agents/threat-modeler.json.
Global install (available from any directory):
./install-kiro-agent.shTo uninstall: ./install-kiro-agent.sh --remove
Local install (project-specific):
cp -r /path/to/threat-modeling-mcp-server/.kiro /path/to/your-project/.kiroUsage:
# Non-interactive: run full threat model and exit
kiro-cli chat --agent threat-modeler --no-interactive "Threat model this project"
# Interactive: start a session with the agent
kiro-cli chat --agent threat-modelerWhat the agent includes:
System prompt (
.kiro/prompts/threat-modeler.md): Detailed instructions for the phased STRIDE methodologySkills (
.kiro/skills/): Per-phase reference materials, including optional Phase 7.5Auto-approved MCP tools: All threat modeling tools run without manual approval prompts
Output File Management
Before exporting, select the directory being threat modeled with
manage_workflow(action="set_project", directory=...). The export tool always
creates <selected-project>/.threatmodel/ and writes these artifacts there:
<base>.tc.json: strict AWS Threat Composer JSON. This is the only file to import into Threat Composer. It holds only the standard schema keys, uses deterministic UUID ids, and applies Threat Composer's field length limits.<base>.md: the human-readable Markdown report with full text.<base>.extended.json: a separate server-state snapshot (architecture, taxonomy profiles, residual risk, phase progress) with internal ids and full text. It is not importable into Threat Composer. Passinclude_extended_data=Falseto skip it.
The stored model keeps full text. When a field exceeds a Threat Composer limit,
only the .tc.json copy is shortened, and the tool response lists each
shortened field (by entity, field, and length) under "Export Warnings".
Omitting output_path uses a timestamped base filename. Supplying
output_path selects only the base filename; absolute paths, parent
traversal, and other directory components cannot redirect any artifact outside
the selected project's .threatmodel directory.
Validation and analysis tools generally return text through MCP rather than writing report files. The exported files are snapshots; the server does not automatically reload them when a new process starts.
Quick Reference
Essential Tools for Getting Started
Tool | Purpose | Example |
| Get comprehensive plan | Start here for overview |
| Get focused Phase 1 guidance | Recommended starting point |
| Check progress | Track completion status |
| Define business context and taxonomy profiles |
|
| Document and maintain assumptions | Start with |
| Manage components, data-store nodes, and connections | Start with |
| Assess and analyze threat actors | Use |
| Manage zones, crossings, and boundaries | Use |
| Manage assets and flows | Sections are |
| Manage threats, mitigations, links, and residual-risk decisions | Use |
| Record and report code-validation evidence | Start with |
| Execute Phase 9 export | Generates JSON and Markdown snapshots |
🚀 Step-by-Step Guidance
Recommended Approach: Use the consolidated guidance tool for one phase at a time:
Phase | Tool | Purpose |
1 |
| Business Context Analysis |
2 |
| Architecture Analysis |
3 |
| Threat Actor Analysis |
4 |
| Trust Boundary Analysis |
5 |
| Asset Flow Analysis |
6 |
| Threat Identification |
7 |
| Mitigation Planning |
7.5 |
| Guided Code Validation (Optional) |
8 |
| Residual Risk Analysis |
9 |
| Output Generation and Documentation |
Tools Overview
The Threat Modeling MCP Server provides 11 tools organized into the following categories:
Category | Tools | Description |
Workflow | 2 tools | Plan and guide the workflow, track or advance phases, and export the result |
System Context | 1 tool | Manage business context plus software, data, user, and NFR taxonomy profiles |
Domain Managers | 6 tools | Manage assumptions, architecture, actors, boundaries, asset flows, threats, and mitigations |
Data Model Types | 1 tool | Explore available enum models and accepted values |
Code Validation | 1 tool | Record evidence, apply statuses, validate coverage, and render reports |
Threat Modeling Methodology
STRIDE Framework
The server uses the STRIDE methodology for systematic threat identification:
Category | Description | Example Threats |
Spoofing | Impersonating someone or something else | Authentication bypass, identity theft |
Tampering | Modifying data or code | Data corruption, code injection |
Repudiation | Claiming to have not performed an action | Log tampering, non-repudiation failures |
Information Disclosure | Exposing information to unauthorized users | Data leaks, privacy breaches |
Denial of Service | Denying or degrading service | Resource exhaustion, availability attacks |
Elevation of Privilege | Gaining capabilities without authorization | Privilege escalation, unauthorized access |
Threat Modeling Process
The comprehensive threat modeling process includes these phases:
Phase 1 - Business Context Analysis: Understanding the business value and criticality of the system
Phase 2 - Architecture Analysis: Connecting every component and data-store node
Phase 3 - Threat Actor Analysis: Identifying potential adversaries and their capabilities
Phase 4 - Trust Boundary Analysis: Assigning every node to a zone and mapping inter-zone connections
Phase 5 - Asset Flow Analysis: Tracking every critical asset through at least one flow
Phase 6 - Threat Identification: Systematically identifying potential threats using STRIDE
Phase 7 - Mitigation Planning: Linking at least one mitigation to every threat
Phase 7.5 - Code Validation Analysis (optional): Recording implementation evidence for every threat and mitigation
Phase 8 - Residual Risk Analysis: Recording a current decision, residual ratings, and rationale for every threat
Phase 9 - Output Generation and Documentation: Exporting current JSON and Markdown snapshots
Each phase includes specific objectives, activities, and outputs to guide the threat modeling process.
Threat Severity Levels
Critical: Immediate action required, system compromise likely
High: Significant risk, should be addressed quickly
Medium: Moderate risk, address in normal development cycle
Low: Minor risk, address when convenient
Threat Likelihood Levels
Very Likely: Expected to occur
Likely: More likely than not
Possible: Plausible given the right conditions
Unlikely: Would require unusual circumstances
Mitigation Types
Preventive: Controls that prevent threats from occurring
Detective: Controls that detect when threats occur
Corrective: Controls that respond to and correct threats
Deterrent: Controls that discourage an attacker from attempting the threat
Assumptions in Threat Modeling
Assumptions are statements that we accept as true without requiring further validation. They help scope the threat model by establishing boundaries and constraints. Common examples include:
"All network connections in the VPC are encrypted in transit"
"AWS KMS keys cannot be discovered by brute force"
"Nation-state threat actors are not a concern for this system"
By documenting assumptions, we can:
Prevent generating pointless threats
Avoid recommending unnecessary mitigations
Focus on relevant security concerns
Clearly document the scope and limitations of the threat model
Development
Contributing
To contribute to this project:
Clone the repository
Create a virtual environment with
uv venvActivate it with
source .venv/bin/activate(Windows PowerShell:.venv\Scripts\Activate.ps1)Install the package and test dependencies with
uv pip install -e '.[test]'Run the server locally with
python run_server.pyRun tests with
python -m pytest
Security
See CONTRIBUTING for more information.
License
This project is licensed under the Apache-2.0 License. See the LICENSE file for details.
Available Tools
11 toolsexport_threat_modelC
Export strict Threat Composer JSON and Markdown plus a state summary.
Inputs: output_path, include_extended_data. Returns: result
inspect_data_modelsA
List enum models or inspect the accepted values for one model.
Inputs: model_name. Returns: result
manage_architectureC
Manage architecture components, connections, and data stores.
Inputs: action (required), items, values, item_id, +2 more. Returns: result
manage_asset_flowsC
Manage assets and the flows that carry them.
Inputs: action (required), items, values, item_id, +2 more. Returns: result
manage_assumptionsD
Manage assumptions through one compact action-based tool.
Inputs: action (required), items, values, item_id, +1 more. Returns: result
manage_code_validationA
Record and report evidence-based Phase 7.5 code validation.
Start with action="describe" for the finding contract. The tool does not inspect source code; it validates findings, updates statuses atomically, tracks complete coverage, and renders the final report.
Inputs: action (required), values. Returns: result
manage_system_contextB
Manage all Phase 1 business context and classification profiles.
Start with action="describe" to get the payload contract without loading every taxonomy field into this tool schema. A complete Phase 1 context can be submitted in one call with action="set", section="all". Values are checked by the canonical enum validators and Pydantic profile models.
Inputs: action (required), items, values, item_id, +2 more. Returns: result
manage_threat_actorsC
Manage threat actors and run the actor analysis.
Inputs: action (required), items, values, item_id, +1 more. Returns: result
manage_threatsC
Manage threats, mitigations, and their links.
Inputs: action (required), items, values, item_id, +2 more. Returns: result
manage_trust_boundariesC
Manage zones, crossing points, boundaries, and their relationships.
Inputs: action (required), items, values, item_id, +2 more. Returns: result
manage_workflowC
Plan, guide, inspect, configure, or advance the workflow.
Inputs: action (required), phase, directory, auto_validate_code. Returns: result
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 11 tools
Each tool targets a distinct threat-modeling domain or lifecycle action: assumptions, workflow orchestration, system context, architecture, actors, trust boundaries, asset flows, threats/mitigations, code validation, data-model inspection, and export. The manage_* tools share a verb but have clearly separate nouns and descriptions, so an agent should not confuse them.
All tool names use snake_case and a consistent verb_noun pattern: manage_*, inspect_data_models, and export_threat_model. The repetition of manage_* is predictable rather than confusing.
Eleven tools is well-scoped for a threat-modeling workflow. The count reflects distinct lifecycle phases and entities without obvious redundancy or missing operations.
The surface covers the full threat-modeling lifecycle: assumptions, workflow, business context, architecture, actors, trust boundaries, asset flows, threats and mitigations, code validation, data-model inspection, and export. There are no obvious dead ends for the stated domain.
Maintenance
Related MCP Connectors
Security reviews, threat models over a repo or website, and remediation tracking, in your editor.
Threat modeling, code, API & cloud security, shadow-AI & compliance governance.
Threat modeling, code/cloud/pipeline scanning, shadow-AI discovery, compliance checks and fixes.
Offline methodology engine for authorized penetration testing, CTF, and security research.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI-powered security scanning of codebases through conversational analysis, allowing users to assess, threat model, code review, DAST test, and generate security reports using natural language with Claude.MIT
- FlicenseNot gradedqualityDmaintenanceEnables AI-powered threat modeling with tools for creating threat models, analyzing security threats, generating security controls, and validating architecture against best practices.-
- AlicenseNot gradedqualityCmaintenanceAutomates 85-95% of the Secure Software Development Lifecycle (SSDLC) planning phase through multi-role AI orchestration, enabling business analysis, threat modeling, test strategy design, and security code review.MIT
- AlicenseAqualityCmaintenanceEnables developers and product owners to scan a codebase and extract a readable business overview—features, roles, access control, data model, and endpoints—along with findings on missing or inconsistent rules, and generate shareable HTML or Markdown reports and diagrams.92MIT