Skip to main content
Glama

umlforge_threat_model

Read-only

Generate a full STRIDE threat model to identify security vulnerabilities before launch, document auth flows and trust boundaries, and prepare for audits.

Instructions

Generate a full STRIDE security threat model for a system.

USE THIS WHEN:

  • You want to identify security vulnerabilities before launch

  • You need to document auth flows, trust boundaries, or sensitive data handling

  • You are preparing for a penetration test or compliance audit (GDPR, SOC2, PCI-DSS)

NOT FOR:

  • General architecture review ? use umlforge_reverse_engineer with report_mode=True

  • Deployment and infrastructure topology ? use umlforge_deployment

  • API flow design (without security focus) ? use umlforge_api_sequence

Produces:

  • Auth flow sequence diagram: all failure paths, trust boundary annotations

  • Data flow diagram: sensitivity labels (PUBLIC / INTERNAL / CONFIDENTIAL / SECRET)

  • STRIDE threat table: all 6 categories with likelihood, mitigation, status

  • Critical flags (??) for high-risk gaps

  • (report_mode=True) Security Assessment Report: threat landscape, critical vulnerability deep-dives, compliance status, remediation roadmap, risk score

Args: system_description: What the system does, how users access it, main components. auth_mechanism: Auth in use (e.g. "JWT Bearer token", "API Key", "OAuth2 + PKCE"). trust_boundaries: Boundary crossings (e.g. ["public internet ? API", "API ? database"]) (optional). sensitive_data: Sensitive data types (e.g. ["user emails", "payment tokens"]) (optional). compliance_framework: Compliance scope (e.g. "GDPR", "NDPA 2023", "PCI-DSS") (optional). report_mode: True ? also produce a Security Assessment Report. Pro/Team/Enterprise only.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
report_modeNo
auth_mechanismYes
sensitive_dataNo
trust_boundariesNo
system_descriptionYes
compliance_frameworkNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.2.0

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds non-obvious behavioral context the annotations cannot convey: report_mode is gated to 'Pro/Team/Enterprise only' and expands the artifact set substantially. It does not mention latency, rate limits, or cost of a full STRIDE pass, so it falls short of a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well front-loaded with the purpose first, then USE/NOT-FOR, then Produces, then Args. Slightly padded: the 'Produces' block largely restates what the output schema already structures, and the long bullet list of report contents could be tighter.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, yet the definition adds depth by enumerating the artifact types (auth-flow sequence diagram, DFD with sensitivity labels, 6-category STRIDE table, critical flags, optional assessment report). Combined with when/when-not routing and license gating, an agent has everything needed to decide and invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description carries the full parameter burden, and it does: every one of the 6 params gets an explanation with concrete examples ('JWT Bearer token', 'OAuth2 + PKCE', ['public internet ? API', 'API ? database']), and the four optional params are marked as such. This fully compensates for the empty schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb+resource+methodology: 'Generate a full STRIDE security threat model for a system.' It also names the sibling tools it is NOT (umlforge_reverse_engineer, umlforge_deployment, umlforge_api_sequence), so an agent can disambiguate without inspecting other schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit 'USE THIS WHEN' triggers (pre-launch vuln identification, auth-flow documentation, pen-test/compliance prep) and an explicit 'NOT FOR' section that routes to the correct alternatives with the discriminating condition (e.g. report_mode=True for general architecture review). Nothing is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.