Skip to main content
Glama

UML Forge MCP Connector

Architecture intelligence, security analysis, and living documentation ? inside your coding agent.

UML Forge gives Claude Code, Cursor, Windsurf, and any MCP-compatible coding agent a suite of 14 specialised tools for producing professional UML diagrams from your codebase, schema, or architecture descriptions.

Quick start

Claude Code:

{
  "mcpServers": {
    "umlforge": {
      "command": "uvx",
      "args": ["umlforge"],
      "env": { "UMLFORGE_API_KEY": "your-api-key" }
    }
  }
}

Cursor / Windsurf ? add the same block to your MCP settings.

Get your API key at umlforge.dev.

Related MCP server: diagrams-mcp

Tools included

Tool

Description

umlforge_suggest

Start here. Describe your goal in plain English ? returns the right tool and a ready-to-run call

umlforge_reverse_engineer

Class, sequence, and state diagrams from a codebase or GitHub URL

umlforge_api_sequence

Sequence diagrams for request flows across services

umlforge_erd_schema

Entity-relationship diagrams from domain descriptions or SQL schemas

umlforge_state_machine

State diagrams from entity lifecycles and business rules

umlforge_frontend_components

Component hierarchy and interaction diagrams for UI features

umlforge_deployment

Infrastructure and CI/CD pipeline diagrams

umlforge_threat_model

STRIDE threat model + attack surface diagram

umlforge_event_driven

Event flow and pub/sub architecture diagrams

umlforge_ai_agent

Agent topology and tool-call flow diagrams for LLM pipelines

umlforge_stakeholder_arch

C4 context diagrams for investors, CTOs, and non-technical stakeholders

umlforge_living_docs

Update existing diagrams to reflect sprint or PR changes

umlforge_onboarding

Day-one knowledge-transfer package for new team members

umlforge_legacy_migration

Legacy structure + modern architecture diagrams and 6-phase migration roadmap from COBOL, Fortran, ABAP, RPG, and other legacy languages

All tools accept report_mode=True to generate a written analysis report alongside the diagram.

Requirements

  • Python 3.11+

  • An API key from umlforge.dev (free tier available)

License

MIT ? see LICENSE.

Available Tools

14 tools
umlforge_ai_agentA
Read-only

Design an AI agent pipeline or multi-agent orchestration system.

USE THIS WHEN:

  • You are building a system where LLMs call tools or hand off to other agents

  • You want to visualise a multi-agent workflow (planner ? researcher ? writer)

  • You need to document tool access, memory strategy, and failure behaviour

NOT FOR:

  • General system architecture ? use umlforge_stakeholder_arch

  • Standard synchronous API flows ? use umlforge_api_sequence

  • Event-driven pipelines without LLM agents ? use umlforge_event_driven

Produces:

  • Agent pipeline sequence: agents as participants with model names, tool calls as self-calls, human-in-the-loop gates, retry/fallback logic

  • Agent component map: agents, tool deps, memory, external integrations

  • Agent responsibility matrix: model, role, tools, inputs, outputs, failure behaviour

  • Risk & observability note: hallucination hotspots, validation gates, logging points

  • Tool overload flags (??) for agents with more than 5 tools

  • (report_mode=True) Agent Pipeline Analysis Notes: pipeline risks, coverage gaps, reliability quick wins

Args: pipeline_purpose: What the agent system does (e.g. "Research pipeline that queries the web and drafts a report"). agents: Agents and their roles (e.g. "Planner [claude-opus-4], Researcher [claude-sonnet-4]"). tools_available: Tools agents can call (e.g. "web_search, execute_code") (optional). orchestration_approach: Coordination strategy ? sequential, DAG, hierarchical, parallel fan-out (optional). memory_strategy: Memory approach ? shared context, vector memory, Redis, none (optional). report_mode: True ? also produce Agent Pipeline Analysis Notes. Pro/Team/Enterprise only.

ParametersJSON Schema
NameRequiredDescriptionDefault
agentsYes
report_modeNo
memory_strategyNo
tools_availableNo
pipeline_purposeYes
orchestration_approachNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior4/5

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

Annotations cover the safety profile (readOnlyHint, openWorldHint, destructiveHint), so the bar is lower. The description adds material value beyond that: the Produces list enumerates exactly what artifacts are generated, including the tool-overload flag for >5 tools and the report_mode-gated analysis notes. It does not disclose processing time or any limits, keeping it 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.

Conciseness5/5

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

Front-loaded summary followed by clearly demarcated USE THIS WHEN / NOT FOR / Produces / Args sections. Each line earns its place; no filler prose.

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, so return values need not be explained, and the Produces section nonetheless previews them. Usage scope, parameter examples, sibling routing, and feature gating are all present. Nothing an agent needs to call this correctly is missing.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must compensate. It does so with example-laden Arg descriptions for all six parameters, showing expected format for pipeline_purpose, agents, tools_available, orchestration_approach, and memory_strategy, and gating report_mode to Pro/Team/Enterprise. It even documents a hidden constraint (tool overload at >5 tools) that no schema field expresses.

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?

States a specific verb+resource ('Design an AI agent pipeline or multi-agent orchestration system') and explicitly distinguishes itself from siblings by naming umlforge_stakeholder_arch, umlforge_api_sequence, and umlforge_event_driven with their conditions. An agent can route without opening any schema.

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 section lists three concrete triggers, NOT FOR section names three sibling tools and the scenarios each should handle. This is textbook when/when-not/alternatives routing.

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

umlforge_api_sequenceA
Read-only

Diagram how services call each other for a specific user action or API flow.

USE THIS WHEN:

  • You want to trace a request across multiple services (e.g. "user logs in")

  • You are designing API contracts between microservices

  • You need to show failure paths, retries, and error handling between services

  • You are writing QA test cases or doing incident post-mortems

NOT FOR:

  • Full codebase analysis ? use umlforge_reverse_engineer

  • Async/event-driven messaging ? use umlforge_event_driven

  • Frontend component interactions ? use umlforge_frontend_components

  • Database schema design ? use umlforge_erd_schema

Produces:

  • Sequence diagram: happy path + at least 2 failure paths, activation boxes, sync vs async arrows, performance boundary annotations

  • Inter-service dependency table: caller, callee, protocol, failure mode, mitigation

  • (report_mode=True) Design Score: Resilience, Performance, Contract Clarity (A?F)

Args: services: All participants, e.g. "API Gateway, Auth Service, Order Service, Payment Provider, User DB". user_journey: The action to diagram in plain English, e.g. "User places an order through checkout". report_mode: True ? also produce a Design Score report. Pro/Team/Enterprise only.

ParametersJSON Schema
NameRequiredDescriptionDefault
servicesYes
report_modeNo
user_journeyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, openWorldHint=true, and the description does not contradict them — a pure generation call is consistent with those hints. It adds value beyond the annotations by disclosing the report_mode entitlement constraint (Pro/Team/Enterprise only) and by spelling out the concrete deliverables (happy path plus two failure paths, dependency table, Design Score grading). It stops short of stating rate limits or any auth requirement beyond the tier note.

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

Conciseness5/5

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

Front-loads a one-line purpose, then layers USE THIS WHEN / NOT FOR / Produces / Args in scannable blocks with no filler sentences. The Produces list slightly overlaps the output schema, but it usefully sets expectations for a complex generative tool and costs little.

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?

For a multi-param generative tool with an output schema and full annotation coverage, this description supplies purpose, selection criteria, exclusions with alternatives, deliverable expectations, and per-parameter semantics. Nothing an agent needs in order to choose and invoke it correctly is missing.

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 burden — and it does: services is defined as all participants with a worked example string, user_journey as the action in plain English with an example, and report_mode as a boolean that additionally emits a Design Score report, including its availability restriction. All three parameters are unambiguous without the 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?

States a specific verb and resource ("Diagram how services call each other") with an explicit scope limit ("for a specific user action or API flow"). The NOT FOR section names the four sibling tools it must not be confused with (reverse_engineer, event_driven, frontend_components, erd_schema), so an agent can differentiate it without opening any schema.

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?

Gives four concrete when-to-use scenarios (cross-service tracing, contract design, failure paths, QA/post-mortems) and four explicit exclusions that each route to a named alternative. There is no ambiguity about which tool to pick for event-driven or frontend work.

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

umlforge_deploymentA
Read-only

Generate a deployment topology and CI/CD pipeline diagram.

USE THIS WHEN:

  • You want to visualise your cloud infrastructure and how services connect

  • You need to document your CI/CD pipeline from commit to production

  • You are planning infrastructure, disaster recovery, or a DevOps handover

NOT FOR:

  • Application-level architecture (how code is structured) ? use umlforge_reverse_engineer

  • Security threat modelling ? use umlforge_threat_model

  • How services call each other at the API level ? use umlforge_api_sequence

Produces:

  • Deployment diagram: nodes, artefacts, network paths, protocol/port labels, internet-facing vs internal traffic distinction

  • CI/CD pipeline flow: commit ? build ? test ? staging ? production, automated gates, manual approvals, rollback paths

  • Deployment environment table: infrastructure, triggers, data classification, monitoring, rollback strategy per environment

  • Infrastructure risk note: SPOFs, missing redundancy, environment parity gaps

  • Observability gap flags (??) for services without /health endpoints

  • (report_mode=True) Infrastructure Health Report: reliability score, observability score, deployment safety score (A?F)

Args: system_name: Name of the system (e.g. "UML Forge API"). cloud_provider: Cloud provider(s) (e.g. "AWS", "Railway + Vercel", "GCP"). environments: Deployment environments (e.g. "development, staging, production"). services: Services and infrastructure (e.g. "FastAPI API, Next.js, PostgreSQL, Redis"). cicd_tool: CI/CD tool (e.g. "GitHub Actions", "GitLab CI") (optional). report_mode: True ? also produce an Infrastructure Health Report. Pro/Team/Enterprise only.

ParametersJSON Schema
NameRequiredDescriptionDefault
servicesYes
cicd_toolNo
report_modeNo
system_nameYes
environmentsYes
cloud_providerYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint/openWorldHint/destructiveHint=false, and the description does not contradict them. It adds genuine behavioral detail beyond the annotations: the report_mode paywall ('Pro/Team/Enterprise only') and the exact contents produced, including observability gap flags and risk notes. It stops short of disclosing generation latency, rate limits, or cost characteristics.

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?

Heavily front-loaded with purpose first, then usage, exclusions, and outputs; the USE THIS WHEN / NOT FOR / Produces scaffolding makes scanning easy. The Produces bullet list is longer than strictly necessary for tool selection, but each bullet is informative rather than filler.

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 description still summarizes the return shape (diagram, pipeline flow, environment table, risk note, health report) and documents all inputs and the plan-gated mode. For a multi-parameter generative tool, nothing an agent needs to invoke it correctly is missing.

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 so: all six parameters are documented with concrete example values (e.g. cloud_provider: 'Railway + Vercel', services: 'FastAPI API, Next.js, PostgreSQL, Redis'), which also conveys the expected comma-separated string format. It also calls out that cicd_tool is optional and gates report_mode by plan.

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 first line states a specific verb and two concrete resources ('deployment topology and CI/CD pipeline diagram'), and the NOT FOR section explicitly names rival siblings (umlforge_reverse_engineer, umlforge_threat_model, umlforge_api_sequence), so an agent can discriminate it without opening any schema.

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?

It provides an explicit 'USE THIS WHEN' block with three concrete scenarios and a 'NOT FOR' block that routes three adjacent use cases to named alternative tools. Both when-to-use and when-not-to-use are covered with alternatives.

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

umlforge_erd_schemaA
Read-only

Design a database schema with ERD, integrity rules, and index recommendations.

USE THIS WHEN:

  • You are designing or reviewing a database schema

  • You need an ERD with foreign keys, cardinality, and data types

  • You want index recommendations and N+1 risk flags

NOT FOR:

  • Full codebase analysis (which may include DB) ? use umlforge_reverse_engineer

  • API flows between services ? use umlforge_api_sequence

  • Event-driven data pipelines ? use umlforge_event_driven

Produces:

  • erDiagram: entities with typed attributes, cardinality, FK labels

  • Schema narrative: one paragraph per entity ? purpose, index recommendations, denormalisation decisions

  • Data integrity checklist: uniqueness, FK integrity, null policies, constraints

  • N+1 query risk flags

  • (report_mode=True) Design Score: Normalisation, Query Performance, Data Integrity (A?F)

Args: domain_description: What the database stores (e.g. "E-commerce: users, products, orders, payments"). entities: Known entities and key attributes (e.g. "User(id, email, tier), Order(id, user_id, status, total)"). access_patterns: Most frequent read/write queries (optional ? used for index recommendations). db_technology: Database technology (default: PostgreSQL). report_mode: True ? also produce a Design Score report. Pro/Team/Enterprise only.

ParametersJSON Schema
NameRequiredDescriptionDefault
entitiesYes
report_modeNo
db_technologyNoPostgreSQL
access_patternsNo
domain_descriptionYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds real context beyond that: report_mode is gated to Pro/Team/Enterprise tiers, and it enumerates exactly what the output contains (erDiagram, schema narrative, integrity checklist, N+1 flags, Design Score). It does not address the idempotentHint=false implication that repeated calls may yield different output, which is the one remaining gap.

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?

Front-loaded with a one-line purpose, then organized under clear headers (USE THIS WHEN, NOT FOR, Produces, Args) with the routing guidance before the output details. It is longer than average, but nearly every line is load-bearing; the Args block is somewhat verbose relative to the compact schema it mirrors.

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?

For a five-parameter generative tool with an output schema present, this is complete: inputs are explained with examples, the report_mode entitlement constraint is disclosed, and the produced artifact list tells the agent what to expect without duplicating the output schema verbatim. Nothing an agent needs to invoke and interpret this tool is missing.

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 burden and does so: each of the five args is documented with meaning, concrete examples ('User(id, email, tier), Order(id, user_id, status, total)'), defaults (PostgreSQL), and inter-parameter relationships (access_patterns is optional and feeds index recommendations; report_mode additionally produces a Design Score report). This fully compensates for the empty schema descriptions.

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 and resource: 'Design a database schema with ERD, integrity rules, and index recommendations.' It names the artifacts produced and explicitly differentiates itself from sibling tools via the NOT FOR section. An agent can distinguish this from umlforge_reverse_engineer or umlforge_api_sequence without opening any schema.

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 bullets state the triggering conditions (designing/reviewing a schema, needing an ERD, wanting index recommendations) and NOT FOR routes three adjacent scenarios to named alternatives with the reason each applies. This is textbook when/when-not/alternative guidance.

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

umlforge_event_drivenA
Read-only

Design an event-driven or async messaging architecture (Kafka, SQS, RabbitMQ, etc.).

USE THIS WHEN:

  • Services communicate via events or messages (not direct API calls)

  • You are designing event sourcing, CQRS, or pub/sub patterns

  • You want to model producer ? broker ? consumer flows with failure handling

NOT FOR:

  • Synchronous REST/gRPC calls between services ? use umlforge_api_sequence

  • Entity lifecycle (Order goes pending ? active) ? use umlforge_state_machine

  • Full system architecture overview ? use umlforge_stakeholder_arch

Produces:

  • Event flow sequence: producers ? broker ? consumers with ack, retry loops (max N), dead-letter queue handling

  • Event catalogue table: name, producer, consumers, payload, idempotency, retention

  • Choreography vs orchestration assessment with coupling risk flags

  • Failure mode analysis: scenario, impact, detection, recovery

  • (report_mode=True) Event System Analysis Notes: reliability risks, idempotency gaps, resilience quick wins

Args: system_context: What this event-driven system does and why it uses messaging. producers: Services that emit events (e.g. "Order Service emits order.placed"). consumers: Services that consume events (e.g. "Notification, Inventory, Analytics"). broker: Message broker (e.g. "Kafka", "RabbitMQ", "AWS SQS/SNS") (optional). events: Named domain events (e.g. "order.placed, payment.failed") (optional). report_mode: True ? also produce Event System Analysis Notes. Pro/Team/Enterprise only.

ParametersJSON Schema
NameRequiredDescriptionDefault
brokerNo
eventsNo
consumersYes
producersYes
report_modeNo
system_contextYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=false, and destructiveHint=false, so the safety profile is covered. The description adds useful output-shape context (retry loops, DLQ handling, failure mode analysis, report_mode gating) but does not disclose runtime behavior beyond that, such as generation time, determinism, or external calls. Given the annotation coverage, a 3 is appropriate.

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

Conciseness5/5

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

Tightly structured with single-line bullets under USE THIS WHEN, NOT FOR, Produces, and Args. Every line is front-loaded and adds distinct information; no filler or repetition of the tool name.

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?

For a design-generation tool with six parameters, required/optional split, an output schema, and rich annotations, the description covers purpose, exclusions, expected artifacts, and parameter intent. Nothing an agent needs to invoke or route this tool is missing.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must carry the burden. It documents all six parameters with examples for producers, consumers, broker, and events, and explains report_mode with its entitlement constraint. system_context is described as intent rather than format, which is the only minor gap.

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 and resource: 'Design an event-driven or async messaging architecture (Kafka, SQS, RabbitMQ, etc.)'. It also explicitly names which sibling tools to use for adjacent concerns (umlforge_api_sequence, umlforge_state_machine, umlforge_stakeholder_arch), so an agent can disambiguate without inspecting 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?

Provides explicit USE THIS WHEN and NOT FOR sections that name the exact alternative tool for each excluded scenario (synchronous REST/gRPC, entity lifecycle, full system architecture). This goes beyond when-to-use into when-not and how-to-route, leaving nothing to inference.

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

umlforge_frontend_componentsA
Read-only

Design a frontend component tree and interaction flow for a UI feature.

USE THIS WHEN:

  • You are designing or documenting a React, Vue, Angular, or Svelte feature

  • You want to see component hierarchy, props flow, and state management

  • You need to identify god components or prop drilling issues

NOT FOR:

  • Backend service interactions ? use umlforge_api_sequence

  • Full codebase including frontend ? use umlforge_reverse_engineer

  • Overall system architecture for stakeholders ? use umlforge_stakeholder_arch

Produces:

  • Component hierarchy graph: parent-child, props (downward arrows), events/callbacks (upward dashed arrows), state store connections, API origins

  • Interaction sequence diagram: most complex user flow ? loading, success, error

  • Component responsibility table: responsibilities, state owned, reusability flag

  • Accessibility note: ARIA roles needed, keyboard nav, WCAG risks

  • God component flags (??) for components with too many responsibilities

  • (report_mode=True) Component Analysis Notes: coupling risks, refactoring quick wins

Args: feature_description: The UI feature or page to diagram. framework: Frontend framework (default: React). Supported: React, Vue, Angular, Svelte, Next.js. state_management: State approach ? Redux, Zustand, Context API, Pinia (optional). interactions: Key user interactions and data flows (e.g. "user submits form, table sorts on header click") (optional). report_mode: True ? also produce Component Analysis Notes. Pro/Team/Enterprise only.

ParametersJSON Schema
NameRequiredDescriptionDefault
frameworkNoReact
report_modeNo
interactionsNo
state_managementNo
feature_descriptionYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior4/5

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

Annotations cover the safety profile (readOnlyHint=true, destructiveHint=false, openWorldHint=true). The description adds real context beyond that: the full list of artifacts produced, the god-component flagging behavior, and a tier requirement for report_mode ('Pro/Team/Enterprise only'). It doesn't disclose rate limits or generation latency, so not 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?

Front-loaded one-line purpose followed by scannable USE THIS WHEN / NOT FOR / Produces / Args sections. Sized appropriately for a generator tool, though the Args block partly restates schema property names.

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 so return values needn't be spelled out, yet the description still enumerates the deliverables, which helps selection. All five parameters are addressed and the tier gate on report_mode is flagged. Nothing an agent needs to invoke this correctly is missing.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must compensate, and it largely does: it documents the supported framework values (React, Vue, Angular, Svelte, Next.js), state-management options, an example for interactions, and the meaning of report_mode. Only feature_description lacks added guidance, but it is self-evident.

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?

States a specific verb+resource ('Design a frontend component tree and interaction flow for a UI feature') and immediately distinguishes itself from sibling tools by name in the NOT FOR section. An agent can route to this tool without opening the schemas of the alternatives.

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 conditions and NOT FOR exclusions, each routing to a named sibling (umlforge_api_sequence, umlforge_reverse_engineer, umlforge_stakeholder_arch). This is textbook when/when-not/alternative guidance.

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

umlforge_legacy_migrationA
Read-only

Visualise a legacy codebase and produce a migration roadmap to a modern language.

USE THIS WHEN:

  • You have COBOL, Fortran, ABAP, RPG, PL/I, Pascal, BASIC, Assembly, Ada, or ALGOL code

  • You want to understand the structure of a legacy program before migrating it

  • You need diagrams showing what the system does NOW and what it would look like rebuilt in Python, Go, Rust, Java, TypeScript, C#, or Kotlin

  • You are planning or pitching a modernisation project and need a migration roadmap

NOT FOR:

  • Analysing modern codebases ? use umlforge_reverse_engineer

  • Generating translated source code (Option B ? future feature)

  • Database schema design ? use umlforge_erd_schema

Produces:

  • Legacy structure diagram: program divisions, sections, modules, data stores, file I/O, external interfaces (as the system exists today)

  • Modern equivalent diagram: proposed clean-architecture rebuild in the target language with idiomatic layer names and structure

  • Migration roadmap: 6-phase plan (Understand ? Extract ? Data ? Logic ? Test Parity ? Cutover) with duration estimates and exit criteria

  • Complexity & risk flags: global state, file I/O coupling, implicit typing, unstructured control flow, vendor extensions, interface contracts

  • (report_mode=True) Legacy Migration Assessment: complexity scores, recommended strategy, tooling recommendations, risk assessment (A?F per dimension)

Provide EITHER github_url OR legacy_code ? not both.

Args: legacy_code: Paste the legacy source code directly. github_url: Public GitHub URL containing legacy source files. Accepted formats: github.com/owner/repo, github.com/owner/repo/tree/branch/path, github.com/owner/repo/blob/branch/file.cbl source_language: Language of the legacy code (default: COBOL). Supported: COBOL, Fortran, ABAP, RPG, PL/I, Pascal, BASIC, Assembly, Ada, ALGOL. target_language: Modern language to migrate toward (default: Python). Supported: Python, Go, Rust, Java, TypeScript, C#, Kotlin. system_purpose: Brief description of what the program does in production (e.g. "monthly payroll batch", "order entry OLTP"). Optional but improves diagram labels and migration advice. github_token: GitHub personal access token (repo scope) ? only needed for private repositories. Never stored or logged. report_mode: True ? also produce a Legacy Migration Assessment with complexity scores and tooling recommendations. Pro/Team/Enterprise only.

ParametersJSON Schema
NameRequiredDescriptionDefault
github_urlNo
legacy_codeNo
report_modeNo
github_tokenNo
system_purposeNo
source_languageNoCOBOL
target_languageNoPython

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A5/5.0
Behavior5/5

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

Annotations already cover readOnly/openWorld/idempotent/destructive, and the description adds meaningful context beyond them: report_mode is gated to Pro/Team/Enterprise, github_token is 'never stored or logged', and inputs are mutually exclusive ('Provide EITHER github_url OR legacy_code — not both'). It also enumerates the concrete artifacts produced (diagrams, 6-phase roadmap, risk flags), which is the kind of behavioral disclosure an agent needs.

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

Conciseness5/5

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

Despite its length, the description is front-loaded with a one-sentence purpose and then cleanly sectioned (USE THIS WHEN / NOT FOR / Produces / Args). Every bullet earns its place by disambiguating scope, output, or parameters; there is no filler prose.

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?

For a 7-parameter, multi-artifact tool, the definition is complete: inputs, mutual-exclusivity constraint, deliverable list, tier gating, and auth handling are all present. Since an output schema exists, return values needn't be re-explained, and the description's output summary is a useful complement rather than redundant padding.

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 burden — and it does. Every one of the 7 parameters is documented: accepted github_url URL formats, the full supported list for source_language and target_language (with defaults), system_purpose's effect on labels/advice, github_token's scope requirement, and report_mode's semantics and tier restriction.

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 opening sentence states a specific verb+resource: 'Visualise a legacy codebase and produce a migration roadmap to a modern language.' The NOT FOR section explicitly differentiates from siblings by name (umlforge_reverse_engineer for modern code, umlforge_erd_schema for DB schema), so an agent can select this tool without opening any schema.

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?

The 'USE THIS WHEN' block enumerates concrete triggers (specific legacy languages, pre-migration structural understanding, modernisation pitching) and the 'NOT FOR' block names the alternative tools to route to instead. This is exactly the when/when-not/alternatives pattern, with nothing left to inference.

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

umlforge_living_docsA
Read-only

Update diagrams you already have to reflect what changed in a sprint or PR.

USE THIS WHEN:

  • You ALREADY HAVE Mermaid diagrams (from a previous generation or your own)

  • Code has changed in a sprint or PR and your diagrams are now out of date

  • You want a changelog-annotated diff of your diagrams

NOT FOR:

  • Generating diagrams for the first time ? use umlforge_reverse_engineer (for existing codebases) or umlforge_stakeholder_arch (for new designs)

  • Analysing a GitHub URL ? use umlforge_reverse_engineer instead

  • Generating diagrams without existing ones to update ? use any other tool

IMPORTANT: current_diagrams is REQUIRED ? paste your existing Mermaid diagrams (including the ```mermaid fences). This tool cannot generate from scratch.

Produces:

  • Updated diagrams for affected sections only (with %% changelog headers)

  • New diagrams for newly introduced patterns

  • Architecture evolution note for pasting into a wiki

  • (report_mode=True) Documentation Analysis Notes: change impact, drift risks, coverage quick wins

Args: current_diagrams: Your existing Mermaid diagram(s) ? paste the full content including ```mermaid fences. REQUIRED. sprint_changes: What changed this sprint: new components, removed flows, renamed services, modified behaviour. affected_files: Files or modules touched in this sprint/PR (optional). report_mode: True ? also produce Documentation Analysis Notes. Pro/Team/Enterprise only.

ParametersJSON Schema
NameRequiredDescriptionDefault
report_modeNo
affected_filesNo
sprint_changesYes
current_diagramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already supply the safety profile (readOnlyHint=true, destructiveHint=false, openWorldHint=true), and the description adds non-obvious constraints on top: current_diagrams is REQUIRED and the tool cannot generate from scratch, output is limited to affected sections with %% changelog headers, and report_mode is gated to Pro/Team/Enterprise. It does not discuss how the diff is computed or failure modes on malformed Mermaid input.

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?

Long but deliberately sectioned with headers and front-loaded purpose; nearly every line carries actionable information. The trailing 'Produces' list partially overlaps the output schema, which is the only mild redundancy.

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?

For a 4-parameter generative tool with an output schema, the definition covers prerequisites, scope, alternatives, artifacts, and gating. Nothing an agent needs in order to call it correctly is missing.

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 burden and does so: all four parameters are documented with meaning, both required params are marked REQUIRED, and it specifies paste format ('including the ```mermaid fences') plus the tier restriction on report_mode.

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?

Opens with a specific verb+resource ('Update diagrams you already have to reflect what changed in a sprint or PR'), and explicitly names the sibling tools it is not (umlforge_reverse_engineer, umlforge_stakeholder_arch). An agent can distinguish it from all 13 siblings without opening a schema.

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?

The USE THIS WHEN / NOT FOR blocks give explicit triggers and explicit exclusions, and route each excluded case to a named alternative tool. This is about as complete as routing guidance gets.

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

umlforge_onboardingA
Read-only

Create a day-one knowledge-transfer package for a developer joining a team.

USE THIS WHEN:

  • A developer is joining a new team or project and needs to get up to speed

  • You are handing off a module or system to another team

  • You want gotchas, constraints, and workflow diagrams in one package

NOT FOR:

  • Analysing existing code for architectural problems ? use umlforge_reverse_engineer

  • Designing a new system ? use umlforge_stakeholder_arch

  • Documenting a specific API flow ? use umlforge_api_sequence

Produces:

  • System overview (C4 Container): the lay-of-the-land on day one

  • Developer workflow sequence: local dev ? test ? CI ? staging ? production

    • most common debugging path

  • Gotchas & constraints table: what the code does, why, what breaks if changed

  • (report_mode=True) Onboarding Analysis Notes: coverage assessment, knowledge gaps, documentation quick wins

Args: system_description: High-level description of the system. tech_stack: Technologies in the stack (e.g. "FastAPI, PostgreSQL, React, Railway"). key_workflows: 2?3 flows a new developer must understand first. pain_points: Known gotchas, non-obvious decisions (optional). report_mode: True ? also produce Onboarding Analysis Notes. Pro/Team/Enterprise only.

ParametersJSON Schema
NameRequiredDescriptionDefault
tech_stackYes
pain_pointsNo
report_modeNo
key_workflowsYes
system_descriptionYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so safety profile is covered. The description adds useful output-shape detail (what the package contains) and a tier constraint (Pro/Team/Enterprise only for report_mode) beyond annotations. However, with output schema present and annotations covering safety, this is solid but not rich behavioral disclosure.

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

Conciseness5/5

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

Front-loaded with the core purpose, then clearly sectioned USE THIS WHEN / NOT FOR / Produces / Args. Every sentence earns its place; no filler. Bullet structure makes it skimmable.

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

Completeness4/5

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

Output schema exists so return values needn't be explained, yet the Produces section still helpfully previews output artifacts including report_mode extras. Parameter guidance compensates for 0% schema coverage. Minor gap: no note on idempotency or openWorld behavior beyond annotations.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must carry parameter meaning. It does document all five parameters with examples (e.g. tech_stack = "FastAPI, PostgreSQL, React, Railway"), notes pain_points is optional, and explains report_mode's effect and tier restriction. Slight gap: key_workflows says "2-3 flows" which is helpful but system_description guidance is thin.

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?

States a specific verb+resource ("Create a day-one knowledge-transfer package for a developer joining a team") and the NOT FOR section explicitly names sibling tools (umlforge_reverse_engineer, umlforge_stakeholder_arch, umlforge_api_sequence) with the disambiguating condition. An agent can route to the correct UMLForge tool without opening 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?

USE THIS WHEN gives three concrete triggering scenarios and NOT FOR names three alternative tools with the condition that selects each. This exceeds typical when-to-use guidance by covering both inclusion and exclusion criteria.

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

umlforge_reverse_engineerA
Read-only

Analyse an existing codebase and produce UML class, sequence, and state diagrams.

USE THIS WHEN:

  • You have a GitHub URL and want to understand what the code does

  • You want to audit a codebase for architectural problems

  • You need diagrams of code that already exists (your own or a public repo)

  • You want an Architectural Intelligence Report on any codebase

NOT FOR:

  • Designing a new system from scratch ? use umlforge_stakeholder_arch

  • Updating diagrams after a sprint ? use umlforge_living_docs

  • Documenting database schema ? use umlforge_erd_schema

  • Mapping how services call each other ? use umlforge_api_sequence

Produces:

  • Class diagram: entities, attributes, relationships, multiplicities

  • Sequence diagram: primary execution flow or dominant use case

  • State diagram: entity lifecycle (if stateful entities are detected)

  • Architectural smell flags: god classes, circular deps, anemic models

  • (report_mode=True) Architectural Intelligence Report: system overview, key findings, modernisation roadmap, health scores (A?F)

Provide EITHER github_url OR codebase ? not both.

Args: github_url: Public GitHub URL. Accepted formats: github.com/owner/repo github.com/owner/repo/tree/branch/path/to/dir github.com/owner/repo/blob/branch/path/to/file.py codebase: Paste code directly when you have files in context or the repo is private. max_nodes: Max classes/components per diagram (default 20, range 5?50). github_token: GitHub personal access token (repo scope) ? only needed for private repositories. Never stored or logged. report_mode: True ? also produce an Architectural Intelligence Report. Pro/Team/Enterprise only.

ParametersJSON Schema
NameRequiredDescriptionDefault
codebaseNo
max_nodesNo
github_urlNo
report_modeNo
github_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A5/5.0
Behavior5/5

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

Annotations already declare readOnlyHint, destructiveHint=false, and openWorldHint, so the safety profile is covered. The description adds genuinely non-structured context: the github_token requires repo scope and is 'never stored or logged', report_mode is gated to Pro/Team/Enterprise, and the exact artifact set produced (including optional state diagram and A–F health scores) is spelled out.

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

Conciseness5/5

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

Well front-loaded with headed sections (USE THIS WHEN / NOT FOR / Produces / Args) so an agent can scan to the relevant part. Long but every block earns its place; the only blemish is mojibake in the em-dashes and ranges ('A?F', '5?50'), which does not obscure meaning.

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?

Despite an output schema existing, the description still fully describes the deliverable set, so an agent understands both invocation and result. Combined with the parameter detail and sibling routing, nothing an agent needs to call this correctly is missing.

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 burden and does so thoroughly: accepted github_url formats, the intended use of codebase for pasted/private code, max_nodes default 20 with range 5–50, token scope, and report_mode semantics. It also states the mutual-exclusion rule ('Provide EITHER github_url OR codebase — not both') that appears nowhere in the 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?

States a specific verb+resource ('Analyse an existing codebase and produce UML class, sequence, and state diagrams') and immediately enumerates the concrete outputs. It distinguishes itself from every relevant sibling by naming umlforge_stakeholder_arch, umlforge_living_docs, umlforge_erd_schema, and umlforge_api_sequence as the tools to use instead for adjacent jobs.

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?

The description contains explicit USE THIS WHEN and NOT FOR sections, with each exclusion routed to a named alternative tool and the selecting condition. An agent can decide between this and all four adjacent siblings without opening another schema.

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

umlforge_stakeholder_archA
Read-only

Generate a C4 architecture diagram for a mixed technical/non-technical audience.

USE THIS WHEN:

  • You are designing or presenting a system to stakeholders (CTO, investors, board)

  • You need a high-level picture of a system you are planning or explaining

  • You want Context + Container + Component diagrams in one call

NOT FOR:

  • Analysing code that already exists ? use umlforge_reverse_engineer

  • Tracing a specific API request across services ? use umlforge_api_sequence

  • Infrastructure and deployment topology ? use umlforge_deployment

  • Security threat modelling ? use umlforge_threat_model

Produces:

  • C4 Context: system boundary, external actors, primary integrations

  • C4 Container: deployable units, tech stack labels, communication protocols

  • C4 Component: internals of the most complex container

  • (report_mode=True) Architecture Communication Notes: audience fit, communication gaps, clarity quick wins

Args: system_description: What the system does, who uses it, its major components. audience_description: Who will read this (e.g. "CTO and non-technical board", "backend engineers new to the system"). report_mode: True ? also produce Architecture Communication Notes. Pro/Team/Enterprise only.

ParametersJSON Schema
NameRequiredDescriptionDefault
report_modeNo
system_descriptionYes
audience_descriptionYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare readOnly=true and openWorld=true, so safety is covered. The description adds real value beyond that: it enumerates the produced artifacts (Context/Container/Component) and discloses a licensing gate (report_mode is Pro/Team/Enterprise only), plus the extra Communication Notes output. It stops short of noting determinism/idempotency behavior, so not a full 5.

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

Conciseness5/5

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

Front-loaded one-line purpose followed by clearly labeled USE THIS WHEN / NOT FOR / Produces / Args sections. Every bullet adds routing or behavior value; no filler sentences.

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, so the description need not explain return values, yet it still summarizes the diagram outputs. Combined with full parameter documentation and tier gating, an agent has everything needed to invoke this correctly.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must carry all meaning, and it documents all three parameters with substance: system_description (what/who/components), audience_description (with examples), and report_mode (semantics plus the Pro/Team/Enterprise restriction). It does not specify format/length expectations, so a 4 rather than 5.

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?

States a specific verb (Generate), resource (C4 architecture diagram), and scope (mixed technical/non-technical stakeholder audience). The NOT FOR section names the exact sibling to use for adjacent tasks, so an agent can distinguish it from umlforge_api_sequence, umlforge_deployment, etc. without opening any schema.

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 bullets give concrete triggering scenarios (CTO/investor/board presentations, high-level system picture), while NOT FOR routes four alternative tasks to their correct siblings. Nothing about when-to-use vs when-not 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.

umlforge_state_machineA
Read-only

Design a state machine for a domain entity that has a lifecycle.

USE THIS WHEN:

  • An entity moves through states (Order: pending ? active ? cancelled)

  • You need to model a workflow, approval chain, or subscription lifecycle

  • You want to find missing states, invalid transitions, or race conditions

NOT FOR:

  • Flows between services (requests, responses) ? use umlforge_api_sequence

  • Async event messaging between services ? use umlforge_event_driven

  • Full codebase analysis ? use umlforge_reverse_engineer

Produces:

  • stateDiagram-v2: all states, entry/exit actions, guard conditions, composite states, explicit ERROR and TERMINAL states

  • State transition table: current state ? event ? guard ? next state ? action

  • Implementation notes: DB write requirements, domain events, race condition guards

  • (report_mode=True) Analysis Notes: transition risks, unreachable states, quick wins

Args: entity: The domain entity (e.g. "Order", "Subscription", "JobApplication"). states: Known lifecycle states (e.g. "pending, active, suspended, cancelled"). events: Triggers that cause transitions (e.g. "payment_received, user_cancels"). business_rules: Constraints on transitions (optional). report_mode: True ? also produce State Machine Analysis Notes. Pro/Team/Enterprise only.

ParametersJSON Schema
NameRequiredDescriptionDefault
entityYes
eventsYes
statesYes
report_modeNo
business_rulesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true, destructiveHint=false, so the safety profile is covered; the description adds value beyond that by disclosing the artifact set produced (stateDiagram-v2, transition table, implementation notes) and an access restriction — report_mode is Pro/Team/Enterprise only. It does not explain idempotency behavior despite idempotentHint=false, but it does not contradict it either.

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?

Content is front-loaded (one-line purpose, then routing, then outputs, then args) and every section is skimmable. It is on the long side for a five-parameter tool, and the output inventory is somewhat verbose given an output schema already exists, but no sentence is filler.

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?

For a design-generation tool with zero schema descriptions and an available output schema, the description closes every gap an agent needs: what it produces, when to pick it over three named siblings, what each input means, and the tier gate on report_mode. Nothing required for correct invocation is missing.

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 burden and does so: every one of the five parameters is annotated with intent and a concrete example, including the comma-separated format implied by "pending, active, suspended, cancelled". Optionality is marked ("business_rules: ... (optional)") and the gated report_mode is explained with its tier requirement.

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 opening line states a specific verb and artifact ("Design a state machine") scoped to "a domain entity that has a lifecycle," which immediately separates it from diagram generators for APIs, ERDs, or deployments. The separate NOT FOR block names the exact sibling tools to use instead, so the agent can discriminate without opening any schema.

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?

Unusually complete routing guidance: USE THIS WHEN lists three concrete trigger conditions with a worked example (Order: pending → active → cancelled), plus the analytical goal (finding missing states, invalid transitions, race conditions). NOT FOR explicitly redirects three adjacent use cases to umlforge_api_sequence, umlforge_event_driven, and umlforge_reverse_engineer by name.

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

umlforge_suggestA
Read-only

*** START HERE if you are unsure which tool to use. ***

Describe what you want to achieve in plain English. This tool will:

  1. Identify the right tool for your goal

  2. Return the EXACT tool call with parameters pre-filled ? ready to execute

  3. Explain why this tool fits and suggest an alternative

USE THIS WHEN:

  • You are not sure which of the 14 tools to use

  • You want to describe a goal ("analyse this repo", "model our order lifecycle") and get a ready-to-run recommendation

  • You want to avoid trial and error with the wrong tool

Example inputs:

  • "analyse https://github.com/pallets/flask and give me an architecture report"

  • "show how our Order entity moves through states"

  • "diagram our Kafka event flow between Order, Inventory, and Notification services"

  • "I have existing diagrams and my sprint changed the auth service"

The response will include the exact tool name, all parameters pre-filled with values derived from your description, and a one-line explanation.

Args: task_description: Plain-English description of what you want to achieve. Include any relevant details: URLs, entity names, service names, tech stack ? the more context, the better the pre-filled parameters.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_descriptionYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds genuinely useful behavior: it returns a recommendation plus a ready-to-run call rather than executing anything, and enumerates the four parts of the response (tool name, parameters, rationale, alternative). It is silent on rate limits, failure modes, or what happens when no tool matches, which keeps it 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?

Front-loaded with 'START HERE if you are unsure which tool to use,' then organized into steps, use cases, examples, and args — easy to scan. Mild redundancy: the Args paragraph restates 'plain-English description' already covered in the opening and in the input examples, and the step list partially repeats the 'USE THIS WHEN' bullets.

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, so the description needn't enumerate return values, and it instead explains the shape of the recommendation at the right level. Combined with the annotation-covered safety profile and the explicit routing guidance, an agent has everything needed to call this correctly on the first try.

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% for the single free-text parameter, so the description carries the full burden — and it does: 'Plain-English description... Include any relevant details: URLs, entity names, service names, tech stack — the more context, the better the pre-filled parameters.' It also supplies four concrete example inputs that model the expected shape and specificity.

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?

States a specific verb and purpose — route a plain-English goal to the correct UMLForge tool and return a pre-filled call — and explicitly positions itself against the 13 sibling tools ('not sure which of the 14 tools to use'). An agent can distinguish this router from umlforge_erd_schema or umlforge_threat_model without opening any schema.

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?

Contains an explicit 'USE THIS WHEN' block with three concrete trigger conditions, including the meta-condition ('you are not sure which tool to use') and the alternative behavior it replaces ('avoid trial and error with the wrong tool'). Nothing about when to invoke it 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.

umlforge_threat_modelA
Read-only

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
report_modeNo
auth_mechanismYes
sensitive_dataNo
trust_boundariesNo
system_descriptionYes
compliance_frameworkNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

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.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 2 tool updatesv0.2.2
    • Changedumlforge_legacy_migration1 field changed
      • addedInput schema / properties / github_token
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Github Token"
        +}
    • Changedumlforge_reverse_engineer1 field changed
      • addedInput schema / properties / github_token
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Github Token"
        +}
  2. 2 tool updatesv0.2.1
    • Removedumlforge_legacy_migrate
    • Addedumlforge_legacy_migration
  3. 6 tool updatesv0.2.0
    • Addedumlforge_deployment
    • Addedumlforge_event_driven
    • Addedumlforge_legacy_migrate
    • Addedumlforge_onboarding
    • Addedumlforge_state_machine
    • Addedumlforge_threat_model
  4. 8 tool updatesv0.1.9
    • First observedumlforge_ai_agent
    • First observedumlforge_api_sequence
    • First observedumlforge_erd_schema
    • First observedumlforge_frontend_components
    • First observedumlforge_living_docs
    • First observedumlforge_reverse_engineer
    • First observedumlforge_stakeholder_arch
    • First observedumlforge_suggest

TDQS

A4.7/5.0

Scored across 14 tools

Disambiguation5/5

Each tool targets a clearly distinct modeling domain (reverse engineering, legacy migration, C4, threat modeling, API sequence, state machine, living docs, ERD, frontend, event-driven, onboarding, AI agents, deployment, suggest). The descriptions include explicit NOT FOR sections that disambiguate borderline cases. The suggest tool further reduces risk of misselection.

Naming Consistency5/5

All 14 tool names follow a consistent snake_case pattern with no mixed conventions. The umlforge_ prefix is applied uniformly. Names are descriptive and adhere to a verb/noun or domain noun style.

Tool Count5/5

14 tools is an ideal count for a comprehensive UML/diagramming server covering many distinct modeling aspects. Each tool has a unique, justified purpose, and the set is well-scoped without excessive overlap or gaps that would suggest missing tools.

Completeness5/5

The toolset covers a wide range of diagram types and analysis workflows: reverse engineering, design from scratch (stakeholder_arch), state machines, sequence diagrams, ERDs, deployment, threat modeling, event-driven, AI agents, legacy migration, onboarding, living docs updates, and a suggestion helper. This represents near-complete lifecycle coverage for UML and architecture documentation.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    F
    maintenance
    Narasimhaponnada/mermaid-mcp - AI-powered Mermaid diagram generation with 22+ diagram types including flowcharts, sequence diagrams, class diagrams, ER diagrams, architecture diagrams, state machines, and more. Features 50+ pre-built templates, advanced layout engines, SVG/PNG/PDF exports.
    51
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables automatic generation of UML class diagrams and entity-relationship diagrams from natural language descriptions or structured JSON data. It integrates with MCP agents to create visual representations of code structures and system designs without manual Mermaid coding.
    4 npm
    1
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Enables AI assistants to generate professional UML diagrams (class, use case, activity, sequence) from natural language descriptions, producing editable .drawio files compatible with diagrams.net.
    7
    53 npm
    ISC