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 15 tools (14 diagram tools plus umlforge_get_result) 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: drawio-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

umlforge_get_result

Retrieve a generation that was still running (see Long-running generations)

All diagram tools accept report_mode=True to generate a written analysis report alongside the diagram. Leave report_mode unset to follow your account's saved preference (the dashboard toggle); report_mode=False forces diagrams only.

Long-running generations

A detailed diagram can take a minute or two, and some MCP clients cancel any tool call after about 60 seconds. UML Forge tools therefore wait up to 45 seconds for the result. If a diagram is still generating, the tool replies with a job id and umlforge_get_result retrieves it when it is ready (results are kept for one hour). Clients with longer timeouts can wait longer by setting UMLFORGE_WAIT_SECONDS (5-200) in the env block of your MCP configuration.

Requirements

  • Python 3.11+

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

License

MIT — see LICENSE.

Available Tools

15 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. Omit to use your saved account preference (dashboard toggle); False forces diagrams only.

NameRequiredDescriptionDefault
agentsYes
report_modeNo
memory_strategyNo
tools_availableNo
pipeline_purposeYes
orchestration_approachNo

Output 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: the exact artifacts produced (sequence, component map, responsibility matrix, risk note), the ⚠️ tool-overload heuristic, and the plan-gating that report_mode requires Pro/Team/Enterprise. It does not explain persistence or whether generated diagrams are saved, which openWorldHint implies.

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 and header-segmented so an agent can skim purpose, routing, outputs and args in order. The Produces list and Args block are lengthy, but with 0% schema coverage the per-parameter prose is doing necessary work rather than padding.

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 six-parameter generation tool with an output schema, the description covers the required inputs, all optional inputs, the plan-tier constraint on report_mode, and the downstream artifacts. Nothing needed to invoke it correctly is missing, and return values are correctly left to the output schema.

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 it: each of the six parameters gets an explanation plus a concrete example, including which are optional and how report_mode's omission falls back to a saved account preference while False forces diagrams-only.

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 resource ('Design an AI agent pipeline or multi-agent orchestration system') and the NOT FOR block names the exact sibling to use instead for each adjacent scenario, so 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 / NOT FOR structure gives three concrete trigger scenarios and three named alternatives (umlforge_stakeholder_arch, umlforge_api_sequence, umlforge_event_driven) with the condition that selects each. 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.

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. Omit to use your saved account preference (dashboard toggle); False forces diagrams only.

NameRequiredDescriptionDefault
servicesYes
report_modeNo
user_journeyYes

Output 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/not-destructive/open-world, and the description adds genuinely new behavioral context: report_mode is gated to Pro/Team/Enterprise, omitting it falls back to a saved account preference, and the output enforces at least two failure paths with activation boxes and sync/async arrows. Some of the 'Produces' bullets overlap the output schema, so it stops 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?

Header-delimited sections put purpose and routing first, and the Args block is tightly annotated. Slightly long, with the 'Produces' bullet list partially restating what the output schema already conveys, which costs a point on strict economy.

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 complex diagramming tool the definition covers routing, inputs with examples, output shape, tier limits, and failure-path requirements. With an output schema and full annotation coverage already present, nothing material 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 must carry the full burden, and it does: services and user_journey each get a concrete example, and report_mode explains the True semantics, the tier restriction, the omit-to-use-preference default, and the explicit False behavior. This fully compensates for undocumented schema properties.

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') qualified by scope ('for a specific user action or API flow'). The NOT FOR section names four siblings and the exact condition that routes to each, so the agent can distinguish it from umlforge_reverse_engineer, umlforge_event_driven, umlforge_frontend_components, and umlforge_erd_schema 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?

Provides an explicit USE THIS WHEN list of four concrete scenarios plus a NOT FOR list that names the correct alternative tool for each exclusion. When-to-use, when-not, and alternatives are all spelled out with no inference required.

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. Omit to use your saved account preference (dashboard toggle); False forces diagrams only.

NameRequiredDescriptionDefault
servicesYes
cicd_toolNo
report_modeNo
system_nameYes
environmentsYes
cloud_providerYes

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.5/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 safety is covered. The description adds genuinely new behavioral context: report_mode is gated to Pro/Team/Enterprise, omitting it falls back to a saved dashboard preference, and False forces diagrams only. It does not mention persistence of generated diagrams or latency, but the tier-gating detail is meaningful beyond the annotations.

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: purpose sentence first, then when/when-not, then outputs, then args. The 'Produces' block runs six bullets and overlaps with the existing output schema, which is mild redundancy, but every section is scannable and labelled.

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?

For a 6-parameter generation tool, the definition covers purpose, alternatives, output contents, tier gating, and every argument with an example. The output_schema already exists, making the 'Produces' enumeration partly redundant, but nothing an agent needs in order 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% across 6 parameters, so the description carries the full burden — and it does, supplying an example value for every argument (cloud_provider: 'AWS', 'Railway + Vercel'; environments: 'development, staging, production'; cicd_tool: 'GitHub Actions'). It stops short of format rules such as delimiters or max lengths, but the examples are the operative guidance an agent needs.

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 gives a specific verb+resource: generate a deployment topology and CI/CD pipeline diagram. The 'NOT FOR' section explicitly names three sibling tools and the neighbouring concerns they cover, so 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?

Three 'USE THIS WHEN' bullets describe when the tool fits (infrastructure visualisation, pipeline documentation, DR/DevOps planning) and three 'NOT FOR' bullets name the alternatives (umlforge_reverse_engineer, umlforge_threat_model, umlforge_api_sequence) with the condition that selects each.

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. Omit to use your saved account preference (dashboard toggle); False forces diagrams only.

NameRequiredDescriptionDefault
entitiesYes
report_modeNo
db_technologyNoPostgreSQL
access_patternsNo
domain_descriptionYes

Output 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 safety is covered; the description adds genuine behavioral context beyond them, notably the report_mode Pro/Team/Enterprise tier gate and the 'omit to use saved account preference' fallback. It does not add rate limits or async/latency behavior, and the 'Produces' list partly duplicates the output schema.

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 purpose followed by scannable headers; every section is short. Minor redundancy: the 'Produces' bullet list restates content already delivered by the output schema, so it doesn't fully earn its space, though the Args block is necessary given zero schema coverage.

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 5-param generative tool with an output schema, the description supplies the routing rules, the optionality and defaults of inputs, and the account-tier constraint on report_mode. Nothing an agent needs 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 parameter burden and does so: each of the five args is documented with intent and concrete examples (domain_description, entities with typed attribute examples), access_patterns is marked optional with its use (index recommendations), db_technology has a stated default, and report_mode's tri-state semantics and tier restriction are explained.

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 database schema with ERD, integrity rules, and index recommendations') and explicitly names the sibling tools it is not for (umlforge_reverse_engineer, umlforge_api_sequence, umlforge_event_driven). An agent can route correctly 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?

Has structured USE THIS WHEN and NOT FOR sections with named alternatives and the conditions selecting them (full codebase analysis → reverse_engineer, service API flows → api_sequence, event pipelines → event_driven). This is explicit when/when-not/alternatives coverage.

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. Omit to use your saved account preference (dashboard toggle); False forces diagrams only.

NameRequiredDescriptionDefault
brokerNo
eventsNo
consumersYes
producersYes
report_modeNo
system_contextYes

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.6/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: the exact artifacts produced (sequence flow with ack/retry/DLQ, event catalogue, choreography-vs-orchestration assessment, failure mode table) and the plan gating for report_mode (Pro/Team/Enterprise plus the dashboard-preference default). It does not clarify whether output is persisted as a document or returned transiently, which is the 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?

Strongly front-loaded and header-scaffolded (USE THIS WHEN / NOT FOR / Produces / Args), so an agent can scan to the decision-relevant lines. It runs somewhat long overall, and the Produces list restates artifacts partly implied by output_schema, but nothing is padding.

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?

For a six-parameter generative design tool with an output schema and read-only annotations, the definition covers purpose, routing, inputs and deliverables adequately. The one soft spot is that report_mode's relationship to the rest of the output and any plan/quota consequences are only partially spelled out.

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 entire burden, and it does: every one of the six parameters is documented in the Args block with meaning plus concrete examples (e.g. producers: 'Order Service emits order.placed'; broker: 'Kafka', 'AWS SQS/SNS'). report_mode's optionality and null-default behavior (omit → saved preference, False → diagrams only) are explained in a way the bare anyOf/null schema cannot convey.

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 sentence states a specific verb+resource: 'Design an event-driven or async messaging architecture', with concrete technology examples (Kafka, SQS, RabbitMQ). The NOT FOR block explicitly names and contrasts three sibling tools (umlforge_api_sequence, umlforge_state_machine, umlforge_stakeholder_arch), so an agent can disambiguate 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?

USE THIS WHEN lists three concrete triggering conditions (event/message-based communication, event sourcing/CQRS/pub-sub, producer→broker→consumer flows), and NOT FOR routes the three most likely confusions to named alternatives. This is the full when/when-not/alternatives pattern.

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. Omit to use your saved account preference (dashboard toggle); False forces diagrams only.

NameRequiredDescriptionDefault
frameworkNoReact
report_modeNo
interactionsNo
state_managementNo
feature_descriptionYes

Output 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, so the safety profile is covered. The description adds real context beyond that: the tier gating on report_mode (Pro/Team/Enterprise only), the fallback to a saved dashboard preference when omitted, and the concrete artifacts produced (god component flags, accessibility notes). It does not mention auth beyond tiers or rate limits, so it stops 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-loads the purpose, then uses clear headers (USE THIS WHEN / NOT FOR / Produces / Args) so the content is scannable. It runs long, and since an output schema exists, the six-item Produces list is partly redundant, but each block still carries distinguishing information 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?

Given a 5-parameter generation tool with an output schema present, the description covers purpose, routing to alternatives, tier constraints, parameter semantics, and expected artifacts. Nothing an agent needs to select or 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%, yet the Args section documents all five parameters with meaning and examples: supported frameworks are listed, interactions comes with an example ('user submits form, table sorts on header click'), state_management names concrete libraries, and report_mode explains the True/omit/False trichotomy plus the tier requirement. This fully compensates for the empty schema coverage.

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 ('Design a frontend component tree and interaction flow for a UI feature') and immediately distinguishes itself from three siblings via the NOT FOR section. An agent can tell it apart from umlforge_api_sequence, umlforge_reverse_engineer, and umlforge_stakeholder_arch 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 conditions (React/Vue/Angular/Svelte feature, wanting hierarchy/props/state visibility, god-component detection) and explicit NOT FOR exclusions that route to named alternatives. This is the full when/when-not/alternative triad.

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

umlforge_get_resultA
Read-only

Retrieve the result of a UML Forge generation that was still running.

USE THIS WHEN:

  • Another umlforge_* tool replied "still generating" and gave you a job id

  • You want to fetch a result you started earlier (kept for one hour)

NOT FOR:

  • Starting a new diagram → call the umlforge_* diagram tool you need

  • Choosing a tool → use umlforge_suggest

Waits up to about 45 seconds for the job. If it is still running, it replies "still generating" again with the same job id: call this tool again.

Args: job_id: The job id from the "still generating" reply.

NameRequiredDescriptionDefault
job_idYes

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.9/5.0
Behavior5/5

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

Goes well beyond the annotations (which only cover read-only/safety hints) by disclosing polling semantics: waits ~45 seconds, may reply 'still generating' again with the same job id, and results are retained for one hour. These are non-obvious behaviors an agent must know to invoke it correctly and to retry.

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, then scannable WHEN/NOT FOR sections and the polling behavior. Every sentence carries actionable information; nothing is padded.

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 described. Combined with the polling/timeout/retention details and the job_id origin, the description covers everything needed to call and re-call this tool.

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 coverage is 0% and the schema only labels the field 'Job Id'. The description compensates by telling the agent where the value comes from (the job id returned in the 'still generating' reply), which is the one piece of semantics that matters here.

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 with scope ('Retrieve the result of a UML Forge generation that was still running'). The 'still running' qualifier distinguishes it from the umlforge_* generation siblings that actually produce diagrams.

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 (the 'still generating' reply, fetching an earlier result) and NOT FOR routing (starting a diagram vs. umlforge_suggest for tool choice). The agent is told exactly which condition selects this tool and which siblings to use otherwise.

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. Omit to use your saved account preference (dashboard toggle); False forces diagrams only.

NameRequiredDescriptionDefault
github_urlNo
legacy_codeNo
report_modeNo
github_tokenNo
system_purposeNo
source_languageNoCOBOL
target_languageNoPython

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.9/5.0
Behavior5/5

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

Annotations cover the safety profile (readOnlyHint, destructiveHint=false), and the description adds genuinely non-obvious behavior: report_mode is gated to Pro/Team/Enterprise, github_token is only needed for private repos and is never stored or logged, and exactly one of github_url/legacy_code must be supplied. The tier restriction and credential-handling disclosure are the kind of context annotations cannot express.

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 summary followed by clearly labeled USE THIS WHEN / NOT FOR / Produces / Args sections. It is long, and the 'Produces' list partially duplicates the output schema, but the structure is scannable and nothing 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 7-parameter, zero-required tool with an output schema, the description supplies the missing pieces an agent needs: mutually exclusive input rule, credential scope, tier gating, and default language pair. Nothing required to invoke it correctly is absent.

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: every argument is explained with defaults, supported values, the accepted GitHub URL formats, and the either/or exclusivity rule for github_url vs legacy_code. 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?

States a concrete verb+resource ('Visualise a legacy codebase and produce a migration roadmap') and immediately distinguishes itself from siblings by naming umlforge_reverse_engineer and umlforge_erd_schema as the wrong tools for adjacent tasks. An agent can route to it without opening the 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' list enumerates the source languages and intents, and the 'NOT FOR' block names each alternative tool and the condition that selects it. The only unimplemented case (source-code generation) is flagged as a future feature rather than left ambiguous.

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. Omit to use your saved account preference (dashboard toggle); False forces diagrams only.

NameRequiredDescriptionDefault
report_modeNo
affected_filesNo
sprint_changesYes
current_diagramsYes

Output 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, openWorldHint=true, idempotentHint=false, so the safety profile is covered; description is consistent with a compute-and-return operation. It adds genuinely non-structured context: report_mode's Pro/Team/Enterprise tier gate, the default-from-dashboard-preference behavior, and the exact set of artifacts produced (changelog headers, evolution notes, Analysis Notes).

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-structured and front-loaded with the purpose before the routing rules, and headers make scanning easy. Slightly verbose: the 'Generating diagrams without existing ones to update → use any other tool' bullet and the IMPORTANT restatement of the required-parameter rule duplicate points made elsewhere.

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?

Given an output schema exists, the description need not explain return values, yet it still summarizes the produced artifacts so the agent can set expectations. Inputs, prerequisite state (must already have diagrams), and tier constraints are all covered for a 4-parameter tool.

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 coverage is 0%, so the description carries the full burden, and it does: it documents all four parameters with semantics beyond the schema titles — current_diagrams (required, full Mermaid content including fences), sprint_changes (new/removed/renamed/modified), affected_files (optional scope), and report_mode (boolean, tier-gated, omit-to-use-saved-preference). 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?

States a precise verb and resource ('Update diagrams you already have to reflect what changed in a sprint or PR') and explicitly names the siblings it is not (umlforge_reverse_engineer, umlforge_stakeholder_arch). An agent can distinguish it from all 13 siblings from the description alone.

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 explicit 'USE THIS WHEN' and 'NOT FOR' sections, routing the agent to the correct alternative for each excluded case (first-time generation → reverse_engineer or stakeholder_arch; GitHub URL → reverse_engineer). 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.

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. Omit to use your saved account preference (dashboard toggle); False forces diagrams only.

NameRequiredDescriptionDefault
tech_stackYes
pain_pointsNo
report_modeNo
key_workflowsYes
system_descriptionYes

Output 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 cover the safety profile (readOnlyHint=true, destructiveHint=false, openWorldHint=true), so the description's job is to add context it does. It does: it discloses the report_mode plan gating (Pro/Team/Enterprise only) and the saved-preference fallback when omitted, plus the concrete artifacts produced. It stops short of stating latency, cost, or whether report_mode changes output size materially, 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?

Structure is strong and front-loaded: one-line purpose, then USE WHEN, NOT FOR, Produces, Args. The Produces list is slightly longer than strictly necessary, but each bullet describes a distinct artifact the agent may need to reason about, so little is wasted.

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?

With an output schema present the description need not explain return values, yet its Produces section aligns cleanly with what is generated. Combined with the explicit when/when-not routing and complete arg documentation for a 5-param, 3-required tool, an agent has everything needed to invoke it 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 does so: every one of the five params is documented in the Args block, with format examples for tech_stack, a cardinality constraint for key_workflows ("2–3 flows"), optionality flagged for pain_points, and full semantics plus plan/toggle interaction for 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?

The first line gives a specific verb+resource+audience: "Create a day-one knowledge-transfer package for a developer joining a team." The NOT FOR section explicitly names the sibling tools it must not be confused with (reverse_engineer, stakeholder_arch, api_sequence), so an agent can disambiguate without opening 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 bullets cover the three triggering scenarios (new joiner, handoff, gathering gotchas/diagrams). The NOT FOR block routes three adjacent intents to the correct siblings, giving both positive and negative usage conditions with no inference required.

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. Omit to use your saved account preference (dashboard toggle); False forces diagrams only.

NameRequiredDescriptionDefault
codebaseNo
max_nodesNo
github_urlNo
report_modeNo
github_tokenNo

Output 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, openWorldHint=true, so the safety profile is covered. The description adds genuinely useful context beyond them: github_token is never stored or logged, report_mode is gated to Pro/Team/Enterprise and falls back to a saved dashboard preference, and github_url/codebase are mutually exclusive. It does not address the non-idempotent hint or cost/latency of scanning a large repo, so it stops short of 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 the core action, then cleanly sectioned into USE THIS WHEN / NOT FOR / Produces / Args. Every block earns its place, though the per-diagram 'Produces' enumeration partly restates what the output schema already conveys, making it marginally longer than necessary.

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?

A high-complexity, five-parameter tool with 0% schema coverage is fully covered here: purpose, exclusions, parameter formats and defaults, auth/tier constraints, and mode-dependent output. With an output schema present, no return-value detail is owed, and nothing an agent needs 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 must carry the full burden - and it does: three accepted github_url URL formats (repo, tree/branch/dir, blob/branch/file), when to use codebase instead (private repo or files in context), max_nodes default 20 and range 5-50, github_token scope (repo), and report_mode's three-state semantics including omission behavior.

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 (analyse/reverse-engineer) and resource (existing codebase) plus the concrete deliverables (class, sequence, state diagrams, smell flags, intelligence report). The NOT FOR section names four sibling tools, so an agent can distinguish it from umlforge_stakeholder_arch, umlforge_living_docs, umlforge_erd_schema, and umlforge_api_sequence 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?

Explicit USE THIS WHEN list (GitHub URL, audit, need diagrams of existing code) and a NOT FOR list that routes to four named alternatives, each with the condition that selects it. Nothing about when-to-use 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_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. Omit to use your saved account preference (dashboard toggle); False forces diagrams only.

NameRequiredDescriptionDefault
report_modeNo
system_descriptionYes
audience_descriptionYes

Output 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 this is a safe, read-only, non-destructive operation. Beyond that, the description discloses what is actually produced (the four artifact types), states that report_mode requires a Pro/Team/Enterprise plan, and explains the omit-to-use-saved-preference fallback — meaningful context annotations cannot express. It stops short of noting generation latency or cost, which for a multi-diagram generation call would be the remaining useful detail.

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 verb+resource, then sectioned into USE THIS WHEN / NOT FOR / Produces / Args. The NOT FOR lines are one line each and the Args block mirrors the schema order, so nothing is padded.

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 enumerated, yet the Produces section still tells the agent what diagrams come back, letting it judge sufficiency before invoking. Combined with the tri-state report_mode semantics and the tier restriction, an agent has everything needed to call 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 carries the full burden, and it does: all three parameters are explained, with audience_description illustrated by two examples and report_mode given precise tri-state semantics (True adds notes, False forces diagrams only, omit inherits the dashboard setting) plus its tier gate. system_description's explanation is comparatively thin, which keeps it off a 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) and resource (C4 architecture diagram) with a qualifying scope: a mixed technical/non-technical audience. The explicit NOT FOR list naming umlforge_reverse_engineer, umlforge_api_sequence, umlforge_deployment and umlforge_threat_model makes the boundary against siblings unambiguous.

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 gives three concrete triggering scenarios (stakeholder presentation, high-level planning, wanting Context+Container+Component in one call) and the NOT FOR block routes each adjacent need to a named alternative tool.

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. Omit to use your saved account preference (dashboard toggle); False forces diagrams only.

NameRequiredDescriptionDefault
entityYes
eventsYes
statesYes
report_modeNo
business_rulesNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.5/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 safety is covered. The description goes beyond them by listing the concrete artifacts produced (stateDiagram-v2 with ERROR/TERMINAL states, transition table, implementation notes) and by flagging that report_mode is Pro/Team/Enterprise only and that omitting it falls back to a saved dashboard preference. It does not mention rate limits or token/latency characteristics, 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.

Conciseness4/5

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

Front-loaded with the one-line purpose, then cleanly sectioned into USE THIS WHEN / NOT FOR / Produces / Args. The Produces block partially duplicates what the output schema would convey, and some bullets are long, but every sentence carries routing or behavioral information rather than filler.

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?

For a 5-param generation tool with an output schema, the description covers purpose, routing to siblings, required vs optional args, and the tier restriction on report_mode. Since an output schema exists it needn't describe return shape, and the brief Produces summary is a bonus rather than a gap. Minor omission: no note on what happens with malformed/incomplete states lists.

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 carries the full burden, and it does: entity, states, events, and business_rules each get a plain-language gloss with an example, and report_mode's tri-state behavior (True / omit / False) is explained precisely, including the tier gate. This fully compensates for the empty schema titles, though it stops short of format guidance such as whether states/events are comma-separated strings.

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 state machine for a domain entity') and immediately scopes it to entities with a lifecycle. The USE THIS WHEN examples (Order: pending → active → cancelled) make the scope concrete, and the NOT FOR section names three siblings so an agent can route correctly 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 when-to-use bullets with concrete triggers (entity moves through states, need to model approval chains, want to find missing states/race conditions), plus a NOT FOR section that names the exact alternative tool for each excluded case (umlforge_api_sequence, umlforge_event_driven, umlforge_reverse_engineer). 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.

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 tool 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.

NameRequiredDescriptionDefault
task_descriptionYes

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.5/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 genuine context beyond that: it discloses the response contract (tool name, pre-filled parameters, one-line explanation, plus a suggested alternative). It doesn't note the non-idempotent behavior, but that is carried by the annotations.

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 'START HERE' banner and a numbered outcome list, then use-case bullets, examples, and arg guidance — well organized and scannable. There is mild redundancy across the numbered list, the USE THIS WHEN block, and the example inputs, but each section serves a distinct purpose so nothing is pure 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 single-parameter router with an output schema and full annotation coverage, this is complete: an agent knows what it does, when to invoke it, how to phrase the argument, and what the response contains. No relevant invocation detail 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% and the input schema gives only a bare string type, so the description must carry the full burden — and it does. It explains that task_description should contain URLs, entity names, service names, and tech stack, and reinforces this with four concrete example inputs, teaching the agent exactly how to populate the single required parameter.

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 function: given a plain-English goal, identify the right tool, return the exact pre-filled tool call, and explain the choice with an alternative. This clearly distinguishes it from its 14 siblings as the meta-router/dispatcher. An agent immediately knows this is the entry point rather than a domain tool.

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

Usage Guidelines4/5

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

The 'USE THIS WHEN' block gives explicit conditions: unsure which tool, wanting a ready-to-run recommendation from a goal, avoiding trial and error. Strong positive guidance, but it never states the inverse (skip this and call the specific tool directly once you know it), so it stops short of full when/when-not coverage.

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. Omit to use your saved account preference (dashboard toggle); False forces diagrams only.

NameRequiredDescriptionDefault
report_modeNo
auth_mechanismYes
sensitive_dataNo
trust_boundariesNo
system_descriptionYes
compliance_frameworkNo

Output 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, openWorldHint=true, so the safety profile is covered. The description adds non-obvious behavior the annotations do not: report_mode is Pro/Team/Enterprise-only, and omitting it falls back to a saved account preference while False forces diagrams-only. It does not mention latency, size limits, or whether generated artifacts persist, so it stops short of a 5. Generating an artifact under readOnlyHint=true is consistent with "does not mutate the described system" semantics rather than a contradiction.

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?

Headers (USE THIS WHEN, NOT FOR, Produces, Args) front-load routing information and the ordering is logical. The "Produces" block partly restates what the output schema already covers, making it slightly longer than strictly necessary, but nothing is padded or redundant enough to hurt.

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 six-parameter generative tool with a rich output schema, the description covers routing, exclusions, parameter examples, tier constraints, and default-resolution behavior. An agent has everything needed to select and invoke it correctly without consulting siblings.

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: it documents all six parameters with concrete examples ("JWT Bearer token", ["public internet → API", "API → database"], "NDPA 2023") and marks the four optional ones. It also explains report_mode's tri-state semantics (True / omit / False) and tier gating, which the bare boolean|null schema cannot convey.

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?

StartsWith a specific verb+resource+methodology ("Generate a full STRIDE security threat model for a system"), leaving no ambiguity about what the tool returns. It also explicitly names the sibling tools it is not (umlforge_reverse_engineer, umlforge_deployment, umlforge_api_sequence), so an agent can disambiguate without opening 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?

The USE THIS WHEN / NOT FOR structure gives explicit triggers, explicit exclusions, and a named alternative for each exclusion (e.g. architecture review → umlforge_reverse_engineer with report_mode=True). This is the strongest possible routing guidance.

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. 1 tool updatev0.4.0
    • Addedumlforge_get_result
  2. 13 tool updatesv0.3.0
    • Changedumlforge_ai_agent3 fields changed
      • addedInput schema / properties / report_mode / anyOf
        Added value: +[
        +  {
        +    "type": "boolean"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / report_mode / default
        Previous value: -falseNew value: +null
      • removedInput schema / properties / report_mode / type
        Removed value: -"boolean"
    • Changedumlforge_api_sequence3 fields changed
      • addedInput schema / properties / report_mode / anyOf
        Added value: +[
        +  {
        +    "type": "boolean"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / report_mode / default
        Previous value: -falseNew value: +null
      • removedInput schema / properties / report_mode / type
        Removed value: -"boolean"
    • Changedumlforge_deployment3 fields changed
      • addedInput schema / properties / report_mode / anyOf
        Added value: +[
        +  {
        +    "type": "boolean"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / report_mode / default
        Previous value: -falseNew value: +null
      • removedInput schema / properties / report_mode / type
        Removed value: -"boolean"
    • Changedumlforge_erd_schema3 fields changed
      • addedInput schema / properties / report_mode / anyOf
        Added value: +[
        +  {
        +    "type": "boolean"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / report_mode / default
        Previous value: -falseNew value: +null
      • removedInput schema / properties / report_mode / type
        Removed value: -"boolean"
    • Changedumlforge_event_driven3 fields changed
      • addedInput schema / properties / report_mode / anyOf
        Added value: +[
        +  {
        +    "type": "boolean"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / report_mode / default
        Previous value: -falseNew value: +null
      • removedInput schema / properties / report_mode / type
        Removed value: -"boolean"
    • Changedumlforge_frontend_components3 fields changed
      • addedInput schema / properties / report_mode / anyOf
        Added value: +[
        +  {
        +    "type": "boolean"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / report_mode / default
        Previous value: -falseNew value: +null
      • removedInput schema / properties / report_mode / type
        Removed value: -"boolean"
    • Changedumlforge_legacy_migration3 fields changed
      • addedInput schema / properties / report_mode / anyOf
        Added value: +[
        +  {
        +    "type": "boolean"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / report_mode / default
        Previous value: -falseNew value: +null
      • removedInput schema / properties / report_mode / type
        Removed value: -"boolean"
    • Changedumlforge_living_docs3 fields changed
      • addedInput schema / properties / report_mode / anyOf
        Added value: +[
        +  {
        +    "type": "boolean"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / report_mode / default
        Previous value: -falseNew value: +null
      • removedInput schema / properties / report_mode / type
        Removed value: -"boolean"
    • Changedumlforge_onboarding3 fields changed
      • addedInput schema / properties / report_mode / anyOf
        Added value: +[
        +  {
        +    "type": "boolean"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / report_mode / default
        Previous value: -falseNew value: +null
      • removedInput schema / properties / report_mode / type
        Removed value: -"boolean"
    • Changedumlforge_reverse_engineer3 fields changed
      • addedInput schema / properties / report_mode / anyOf
        Added value: +[
        +  {
        +    "type": "boolean"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / report_mode / default
        Previous value: -falseNew value: +null
      • removedInput schema / properties / report_mode / type
        Removed value: -"boolean"
    • Changedumlforge_stakeholder_arch3 fields changed
      • addedInput schema / properties / report_mode / anyOf
        Added value: +[
        +  {
        +    "type": "boolean"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / report_mode / default
        Previous value: -falseNew value: +null
      • removedInput schema / properties / report_mode / type
        Removed value: -"boolean"
    • Changedumlforge_state_machine3 fields changed
      • addedInput schema / properties / report_mode / anyOf
        Added value: +[
        +  {
        +    "type": "boolean"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / report_mode / default
        Previous value: -falseNew value: +null
      • removedInput schema / properties / report_mode / type
        Removed value: -"boolean"
    • Changedumlforge_threat_model3 fields changed
      • addedInput schema / properties / report_mode / anyOf
        Added value: +[
        +  {
        +    "type": "boolean"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / report_mode / default
        Previous value: -falseNew value: +null
      • removedInput schema / properties / report_mode / type
        Removed value: -"boolean"
  3. 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"
        +}
  4. 2 tool updatesv0.2.1
    • Removedumlforge_legacy_migrate
    • Addedumlforge_legacy_migration
  5. 6 tool updatesv0.2.0
    • Addedumlforge_deployment
    • Addedumlforge_event_driven
    • Addedumlforge_legacy_migrate
    • Addedumlforge_onboarding
    • Addedumlforge_state_machine
    • Addedumlforge_threat_model
  6. 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 15 tools

Disambiguation5/5

Each tool targets a distinct diagram/analysis domain, and the descriptions go further than most servers by including explicit 'USE THIS WHEN' and 'NOT FOR' sections that cross-reference sibling tools (e.g. reverse_engineer explicitly redirects to stakeholder_arch, living_docs, erd_schema, api_sequence). Even where diagram types could superficially overlap (reverse_engineer emits sequence/state diagrams vs. api_sequence/state_machine), the boundaries are spelled out, making misselection unlikely.

Naming Consistency5/5

All 15 tools follow an identical umlforge_<snake_case_descriptor> pattern with no camelCase or stylistic drift. The descriptor verbs/nouns vary appropriately by purpose but the naming convention itself is completely predictable.

Tool Count5/5

15 tools maps cleanly onto 15 distinct diagram/analysis domains (C4, sequence, state, ERD, frontend, events, AI agents, deployment, legacy, threat model, onboarding, diffing). The two utility tools (suggest router, get_result poller) earn their place given the async generation model; nothing is redundant.

Completeness4/5

Coverage of diagram generation and analysis is unusually broad and spans the full design-to-modernisation lifecycle. Minor gaps remain, such as no way to list or browse past generation jobs/results (only single-job get_result) and no export/re-render utility, but these are workable around.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    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
    30 npm
    ISC
  • F
    license
    Not graded
    quality
    A
    maintenance
    Enables AI assistants in Cursor, Claude Code, and Windsurf to turn plain descriptions of components, actors, or data into auto-laid-out, editable hand-drawn diagrams across 25 types — including architecture, flowcharts, sequence diagrams, Gantt charts, and charts — with architecture-aware styling and natural-language revision. It can optionally persist a system as a version-controlled, queryable knowledge graph, and it runs fully offline with no API keys, exporting to SVG and PNG.
    -
  • F
    license
    Not graded
    quality
    A
    maintenance
    Enables AI coding assistants to generate and iteratively revise auto-laid-out, hand-drawn diagrams across 25 types — architecture, flowcharts, sequence, ER, Gantt, and charts — from natural-language descriptions, with SVG/PNG export. It can also persist a system as a version-controlled, queryable architecture knowledge graph, running fully offline in Cursor, Claude Code, and Windsurf without API keys.
    -