Skip to main content
Glama
peter14l

Kotlin Multi-Agent Orchestrator

by peter14l

Kotlin Multi-Agent Orchestrator (MCP Server & Skill)

Enterprise-grade Multi-Agent System & Model Context Protocol (MCP) Server for building production-ready Kotlin apps across Android (Jetpack Compose), Compose Multiplatform (CMP), Ktor Backend, Spring Boot, Dynamic Design/Architecture Document Blueprints, and Hackathon Fast Prototyping.


๐ŸŒŸ Complete Specialized Agent Roster (24 Tools)

๐Ÿ“‹ Project Specifications, Blueprints & Documentation Agents

Specialized Agent

MCP Tool Name

Description & Key Responsibilities

How to Call

๐Ÿ“‘ Blueprint & Spec Architect

scaffold_kotlin_project_docs

Generates dynamic, prompt-tailored PRD.md, architecture.md, rules.md, phases.md, design.md, and memory.md. Checks if files already exist before writing to prevent overwriting manual notes.

scaffold_kotlin_project_docs({ projectName: "MyApp", appDescription: "..." })

๐Ÿš€ Core Architecture & Engineering Agents

Specialized Agent

MCP Tool Name

Description & Key Responsibilities

How to Call

๐Ÿงฉ Prompt Architect

decompose_kotlin_prompt

Breaks down vague or complex user prompts into structured feature tickets (P0/P1/P2), Clean Architecture modules, and execution sprints.

decompose_kotlin_prompt({ prompt: "...", target: "android-compose" })

๐ŸŒ Dependency Researcher

research_kotlin_dependencies

Queries Maven Central, validates Kotlin 2.x K2 compiler compatibility, and generates standard gradle/libs.versions.toml Version Catalogs.

research_kotlin_dependencies({ target: "android-compose" })

๐ŸŽจ UI / UX Specialist

design_kotlin_ui

Generates modern Jetpack Compose / CMP screens with MVI Unidirectional Data Flow, Material 3 theming, domain layouts, and @PreviewLightDark previews.

design_kotlin_ui({ screenName: "DashboardScreen", targetPlatform: "android-compose" })

โš™๏ธ Backend Specialist

scaffold_kotlin_backend

Scaffolds high-throughput Ktor 3.x / Spring Boot Kotlin backend routes, services, Exposed/Room databases, and Koin DI modules.

scaffold_kotlin_backend({ domainName: "Wallet", backendType: "ktor" })

๐Ÿฉบ Compiler Doctor

diagnose_kotlin_errors

Diagnoses Kotlin compiler errors, Gradle sync/build failures, Compose recomposition issues, and Coroutine race conditions with code diffs.

diagnose_kotlin_errors({ errorMessage: "Compose Compiler requires Kotlin 1.9..." })

๐Ÿงช QA & Test Specialist

generate_and_run_tests

Generates Unit tests with MockK, Flow/State verification with Turbine, and Compose UI tests with createComposeRule.

generate_and_run_tests({ className: "WalletViewModel", testType: "viewmodel" })

๐Ÿ” Code Quality Auditor

audit_kotlin_codebase

Audits Kotlin source code for memory leaks, GlobalScope anti-patterns, and Compose performance bottlenecks.

audit_kotlin_codebase({ code: "...", fileType: "viewmodel" })

๐ŸŒ Cross-Bridge Specialist

generate_kotlin_api_bridge

Generates full-stack API contracts: Ktor server routes, KMP client, matching Dart DTOs, and OpenAPI 3.0 specs.

generate_kotlin_api_bridge({ serviceName: "Order", endpoints: [...] })

๐Ÿ“ฑ Native Platform Specialist

generate_kotlin_platform_config

Generates AndroidManifest.xml permissions, ProGuard/R8 keep rules, release keystore configs, and Compose Desktop packaging.

generate_kotlin_platform_config({ projectName: "MyApp", permissions: ["CAMERA"] })

๐Ÿš€ CI/CD & DevOps Engineer

generate_kotlin_cicd_pipeline

Generates production GitHub Actions workflows, Detekt static analysis steps, Dockerfile for Ktor backends, and Gradle Build Caching.

generate_kotlin_cicd_pipeline({ projectName: "MyApp", target: "android-compose" })

๐Ÿ“ธ Visual Snapshot Specialist

generate_compose_screenshot_tests

Generates Roborazzi emulator-less JVM screenshot test suites across Light/Dark modes and tablet viewports.

generate_compose_screenshot_tests({ screenName: "DashboardScreen", composableName: "DashboardContent" })

๐Ÿค– On-Device AI Specialist

scaffold_kotlin_ai_module

Scaffolds Google GenAI Kotlin SDK / MediaPipe on-device LLM inference modules with Flow streaming and ViewModel state integration.

scaffold_kotlin_ai_module({ featureName: "ChatAssistant", provider: "google-genai" })

๐Ÿ” Security & Crypto Auditor

audit_kotlin_security

Audits Kotlin code for secret leaks, scaffolds AndroidX EncryptedSharedPreferences (MasterKey AES256-GCM), and BiometricPrompt.

audit_kotlin_security({ codeSnippet: "...", enableBiometrics: true })

๐Ÿ’พ Database Architect

scaffold_kotlin_database

Scaffolds Android Room 2.7+ (KSP) database with entities, DAOs returning Coroutine Flow streams, and AutoMigration strategies.

scaffold_kotlin_database({ databaseName: "Crypto", entities: [...] })

๐ŸŒ Localization (i18n) Specialist

generate_kotlin_localization

Generates Android strings.xml resource bundles (values, values-es, values-ar for RTL) and Jetpack Compose AppStrings helpers.

generate_kotlin_localization({ supportedLocales: ["en", "es", "ar"], stringKeys: {...} })

๐Ÿ“Š Observability & Analytics Specialist

scaffold_kotlin_observability

Scaffolds Sentry/Firebase Crashlytics crash reporting, type-safe analytics event loggers, and OkHttp network latency interceptors.

scaffold_kotlin_observability({ provider: "sentry", customEventNames: ["token_swapped"] })

๐Ÿ”— Deep Linking & Push Specialist

configure_kotlin_deep_links

Configures Android App Links intent-filters in AndroidManifest.xml, assetlinks.json, Jetpack Compose Navigation deep links, and FCM routing.

configure_kotlin_deep_links({ customScheme: "myapp", domainHost: "app.example.com", routes: [...] })

โ™ฟ Accessibility (a11y) Auditor

audit_kotlin_accessibility

Audits Jetpack Compose code against WCAG 2.1 AA guidelines, checks Modifier.semantics, contentDescription, and generates AccessibleInteractiveBox.

audit_kotlin_accessibility({ codeSnippet: "Icon(Icons.Default.Add, contentDescription = null, ...)" })

๐Ÿš€ Master Orchestrator

orchestrate_kotlin_project

Coordinates all specialized agents into an automated, end-to-end project generation pipeline.

orchestrate_kotlin_project({ projectName: "MyApp", target: "android-compose", prompt: "..." })

โšก Hackathon Fast-Prototyping Agents

Specialized Agent

MCP Tool Name

Description & Key Responsibilities

How to Call

๐ŸŽญ Demo Data & Mock Factory

generate_kotlin_mock_factory

Generates deterministic domain mock data factories, fake entities, and simulated Flow repositories for instant UI prototyping.

generate_kotlin_mock_factory({ domainName: "Product", itemCount: 10 })

๐Ÿ” Auth & Onboarding Specialist

scaffold_kotlin_auth_flow

Scaffolds Compose HorizontalPager Onboarding tour, Material 3 Login screen with Google auth, and state-preserving AuthViewModel.

scaffold_kotlin_auth_flow({ appName: "HackathonApp" })

๐Ÿ“ˆ Charts & Data Storytelling

generate_kotlin_charts

Scaffolds interactive animated Canvas charts (Line, Bar, Area graphs) with gradient fills and tween animations.

generate_kotlin_charts({ chartTitle: "Revenue Trends", dataPoints: [...] })

๐Ÿ›ก๏ธ Hackathon Demo Resilience

scaffold_kotlin_offline_resilience

Guarantees zero crashes during live stage demos by catching network drops / timeouts and seamlessly serving cached mock data.

scaffold_kotlin_offline_resilience({ enableDemoMockFallback: true })


Related MCP server: Multi Agent Orchestrator MCP

๐Ÿ“ฆ Installation & Setup

git clone https://github.com/peter14l/kotlin-agent-orchestrator.git
cd kotlin-agent-orchestrator
npm install
npm run build
npm test

Available Tools

24 tools
audit_kotlin_accessibilityA

Audits Jetpack Compose code against WCAG 2.1 AA guidelines, checks Modifier.semantics, contentDescription on Icons, and enforces minimum 48x48dp touch targets.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeSnippetYesJetpack Compose code to audit.

TDQS

A4.2/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden of behavioral disclosure. It usefully enumerates the specific checks performed, but it does not explicitly describe the output format or confirm that the tool is read-only/non-mutating. 'Audits' implies analysis, but the lack of explicit safety or return information leaves a gap.

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?

A single sentence that front-loads the core purpose and then lists concrete checks without filler. Every clause adds actionable detail, and the structure makes the tool's scope immediately understandable.

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 one-parameter audit tool with no output schema, the description adequately covers what input is needed and what will be checked. It could explicitly state what the tool returns or whether it modifies code, but the low complexity and clear input schema make the definition sufficient for correct invocation.

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 100% because codeSnippet is described as 'Jetpack Compose code to audit.' The description adds value by enumerating the audit criteria, helping the user understand what kind of Compose code is relevant and what will be inspected. This goes slightly beyond the baseline schema-only meaning.

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 uses a specific verb ('Audits') with a clear resource ('Jetpack Compose code') and concrete standards (WCAG 2.1 AA), plus named checks like Modifier.semantics, contentDescription, and 48x48dp touch targets. This clearly distinguishes it from sibling audit tools focused on codebase or security.

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 context is clear: use this tool when Jetpack Compose code needs an accessibility audit against WCAG 2.1 AA. It does not explicitly name alternatives or when-not-to-use conditions, but the domain is unambiguous enough for an agent to select it appropriately.

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

audit_kotlin_codebaseA

Audits Kotlin code for Compose performance anti-patterns, coroutine leaks, blocking calls on Dispatchers.Main, missing @Immutable markers, and architecture violations.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesThe Kotlin source code to audit.
fileTypeNoThe architectural layer or component type.compose-ui

TDQS

A3.9/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. 'Audits' clearly implies a read-only analysis and the description specifies what is checked, but it does not explicitly state side-effect-free behavior, handling of invalid input, or what happens after the audit completes.

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?

A single, dense sentence that is front-loaded with the action and resource. Every audit category listed is relevant and earns its place; there is no filler or redundant restatement of the tool name.

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

Completeness3/5

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

The description adequately explains the purpose and audit scope, but with no output schema and no annotations it should also clarify what the tool returns and how 'fileType' changes the audit behavior. Without that, an agent must infer how to interpret the results.

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

Parameters3/5

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

Schema coverage is 100%, with both 'code' and 'fileType' already described. The description adds useful context about the kinds of problems found but does not substantially add meaning to the parameters themselves, so the baseline 3 applies.

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 uses a specific verb ('Audits') with a clear resource ('Kotlin code') and enumerates concrete audit categories such as Compose performance anti-patterns, coroutine leaks, and blocking calls on Dispatchers.Main. This makes it clearly distinguishable from sibling audit tools like audit_kotlin_security and audit_kotlin_accessibility.

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 description implies a clear use case: run this when analyzing Kotlin code for Compose/coroutine/architecture issues. It does not explicitly state when not to use it or name alternatives, but the enumerated scope plus sibling tool names provide enough contextual guidance.

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

audit_kotlin_securityA

Audits Kotlin code for secret leaks, unencrypted preferences, and insecure cleartext traffic. Scaffolds AndroidX EncryptedSharedPreferences (AES256-GCM) and BiometricPrompt.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeSnippetNoKotlin code snippet to audit.
enableBiometricsNoScaffold BiometricPrompt helper.

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations, the description must carry the behavioral burden. It does disclose that it audits for secret leaks, unencrypted preferences, cleartext traffic, and scaffolds two specific components, but it does not explicitly state side effects such as whether files are modified, what the return format is, or how the audit result is delivered.

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?

The description is two focused sentences, with the audit scope front-loaded and the remediation behavior stated immediately after. Every sentence adds distinct, useful information with no filler.

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

Completeness3/5

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

For a tool with no output schema and no annotations, an agent still cannot tell whether calling the tool returns a findings report, scaffolded code, or writes files into a project. The description covers what is checked and scaffolded but omits return behavior and boundary conditions, making it adequate but not complete.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already documents codeSnippet and enableBiometrics. The description's mention of BiometricPrompt loosely aligns with enableBiometrics, but it does not add format, interaction, or default-value semantics beyond the schema. Baseline 3 is appropriate.

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 clearly states the tool audits Kotlin code for specific security issues and scaffolds concrete remediation classes, AndroidX EncryptedSharedPreferences and BiometricPrompt. This distinguishes it from sibling audit tools like audit_kotlin_codebase and audit_kotlin_accessibility.

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

Usage Guidelines3/5

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

The description implies it should be used when a Kotlin security audit or security remediation is needed, but it does not explicitly mention alternatives, exclusions, or when not to use it. There is no routing guidance beyond the obvious scope.

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

decompose_kotlin_promptB

Breaks down large, structured, or vague user prompts into a modular Kotlin feature roadmap, Clean Architecture module breakdown, sprint phases, and acceptance criteria.

ParametersJSON Schema
NameRequiredDescriptionDefault
promptYesThe raw user prompt or feature specification to break down.
projectNameNoThe name of the Kotlin project (e.g., 'ECommerceApp').KotlinApp
targetPlatformNoTarget Kotlin platform.android-compose
architecturePatternNoArchitectural style to enforce.mvi-clean-architecture

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It conveys that the tool transforms prompts into planning artifacts and implies a non-destructive, analysis-only behavior, but it does not explicitly state whether it reads the codebase, writes files, or returns a structured plan.

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?

The description is a single, information-dense sentence that front-loads the primary action and then lists the concrete outputs. It is concise, with no filler or redundant restatement of the tool name.

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

Completeness3/5

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

Given four parameters, no annotations, and no output schema, the description provides a reasonable overview but leaves gaps. An agent may not know what format the decomposition takes, whether the tool inspects an existing project, or how the roadmap should be consumed by subsequent scaffold/generate tools.

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

Parameters3/5

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

The input schema provides 100% description coverage for all four parameters, including enums and defaults, so the description does not need to add parameter detail. It correctly stays above the schema's level, focusing on the tool's purpose rather than repeating parameter meanings.

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

Purpose4/5

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

The description uses a specific verb ('Breaks down') and resource ('user prompts'), and clearly enumerates the deliverables: Kotlin feature roadmap, Clean Architecture module breakdown, sprint phases, and acceptance criteria. This differentiates it from code-generation siblings, though it does not explicitly name another tool for contrast.

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

Usage Guidelines3/5

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

The description gives clear input context ('large, structured, or vague user prompts'), implying when this planning tool is useful. However, it does not state when not to use it or how it relates to sibling tools like scaffold_kotlin_project or design_kotlin_ui, leaving the agent to infer its role in a larger workflow.

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

design_kotlin_uiB

Designs production-ready Jetpack Compose / Compose Multiplatform UI screens with Unidirectional Data Flow, Material 3 theming, ViewModel state handling, and multi-device preview annotations.

ParametersJSON Schema
NameRequiredDescriptionDefault
screenNameYesName of the screen (e.g. 'ProductCatalog', 'UserProfile').
targetPlatformNoTarget Compose platform.android-compose
includePreviewsNoWhether to include @PreviewLightDark and @PreviewScreenSizes annotations.
layoutDescriptionYesDetailed description of the screen layout, elements, interactions, and animations.

TDQS

B3.4/5.0
Behavior3/5

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

No annotations are present, so the description carries the full behavioral burden. It does disclose what the produced screen is expected to include: Unidirectional Data Flow, Material 3 theming, ViewModel state handling, and preview annotations. However, it does not say whether the tool writes files, returns code, or has side effects, which is important for a generative tool.

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?

A single, front-loaded sentence that begins with the action and resource and packs the key constraints into a compact list. There is no repetition of schema details and no filler, so the description is both concise and information-dense.

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

Completeness2/5

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

For a tool with no annotations and no output schema, the description should clarify what invoking it actually returns or modifies. It omits whether the output is a code snippet, a file edit, or a design plan, and it does not state prerequisites such as an existing Compose project. Parameter coverage is strong, but the invocation outcome is under-specified.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all four parameters. The description adds general architectural expectations but no per-parameter meaning beyond the schema. It does not clarify how layoutDescription should be structured or how screenName affects the output, but the schema handles the basics.

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

Purpose4/5

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

The description uses a specific action verb ('Designs') and clearly names the resource: production-ready Jetpack Compose / Compose Multiplatform UI screens. It also lists distinguishing architectural characteristics, making it distinct from sibling tools like screenshot tests or localization. It does not explicitly name a sibling, but the resource and constraints are unambiguous.

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

Usage Guidelines3/5

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

The description implies when the tool should be used: when a production-ready Compose UI screen is needed. However, it gives no explicit selection criteria, no exclusions, and no pointer to alternatives such as generate_compose_screenshot_tests. The usage context is inferable rather than stated.

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

diagnose_kotlin_errorsA

Diagnoses Kotlin compilation errors, Gradle sync/build failures, Compose recomposition issues, Coroutine race conditions, and Proguard/R8 shrinking bugs with targeted code fixes.

ParametersJSON Schema
NameRequiredDescriptionDefault
gradleLogNoOptional Gradle build output or sync log.
stackTraceNoOptional stack trace log.
codeSnippetNoThe offending Kotlin code snippet.
errorMessageYesThe compiler error message, exception description, or build failure message.
targetPlatformNoTarget platform.

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It adds scope context by listing the error families it handles and hints at a deliverable via 'targeted code fixes,' but it never states whether fixes are applied to files or merely suggested, nor what a diagnosis report contains. The ambiguity about side effects is a real gap for a tool with no annotation safety profile.

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?

One dense, front-loaded sentence with no filler: the verb and resource come first and the sentence ends with a concrete outcome. The five-item enumeration is slightly run-on, but each item earns its place by defining diagnostic scope.

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

Completeness3/5

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

For a five-parameter tool with a six-value targetPlatform enum, no output schema, and no annotations, the description plus fully-described schema yields a usable but incomplete picture. Missing elements include the diagnosis return format, whether fixes are applied or proposed, and which input combinations serve which error category.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline of 3 applies. The description's error categories loosely map to inputs (gradleLog for Gradle failures, stackTrace for runtime issues, errorMessage for compilation errors), but it adds no parameter-level formatting or usage detail beyond what the schema already states.

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 names a specific verb ('Diagnoses') and a concrete resource: Kotlin error families spanning compilation, Gradle, Compose, coroutines, and Proguard/R8, with an explicit outcome ('targeted code fixes'). It clearly distinguishes the tool from the sibling set, which is composed entirely of generation, scaffolding, design, and audit tools, so an agent can pick this one 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 Guidelines3/5

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

The enumerated error categories (Gradle sync/build failures, Compose recomposition issues, Coroutine race conditions) imply when the tool applies, but there is no explicit when-to-use versus when-not-to-use guidance and no alternatives are named. Overlapping siblings such as audit_kotlin_codebase or generate_and_run_tests are never mentioned, leaving the agent to infer the boundary.

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

generate_and_run_testsC

Generates Kotlin Unit tests with MockK, Flow/State verification with Turbine, and Compose UI tests with createComposeRule, along with execution instructions.

ParametersJSON Schema
NameRequiredDescriptionDefault
testTypeNoType of test suite to generate.viewmodel
classNameYesName of the class to test (e.g. 'AuthViewModel', 'UserRepository').
targetCodeNoOptional source code of the class being tested.
methodsToTestNoList of methods or user flows to cover.

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of disclosing behavior. It does reveal the testing frameworks and that execution instructions are included, but it says nothing about side effects such as writing files, modifying the project, or actually running builds/tests. The gap between the tool name ('run_tests') and description ('execution instructions') is also not clarified.

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?

The description is a single, dense sentence that front-loads the main action and key technologies. There is no fluff. It could be slightly more structured to separate generation from execution, but it is efficient and readable.

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

Completeness2/5

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

The tool supports five test types, has four parameters, no formal annotations, and no output schema, yet the description does not explain what 'execution instructions' means, whether tests are actually run, or what the generated output looks like. A multi-mode tool with this complexity needs more contextual detail to be safely invoked.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all four parameters and the testType enum. The description adds no extra parameter-level meaning. This is acceptable under the baseline rule, but it also does not explain how parameters like methodsToTest or targetCode are used together.

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

Purpose4/5

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

The description clearly identifies the tool as generating Kotlin tests and names specific frameworks (MockK, Turbine, createComposeRule), making the purpose specific. It does not explicitly differentiate itself from sibling tools like generate_compose_screenshot_tests, but the core purpose is not vague. However, the tool name says 'generate_and_run_tests' while the description only mentions 'execution instructions,' creating some ambiguity about whether it actually executes tests.

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

Usage Guidelines2/5

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

No guidance is provided about when to use this tool versus alternatives. There is no mention of when generate_and_run_tests is preferred over generate_compose_screenshot_tests or generate_kotlin_mock_factory. The context for choosing among the testType enum values is also absent.

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

generate_compose_screenshot_testsA

Generates Roborazzi screenshot test suites for Jetpack Compose screens for emulator-less visual regression testing across Light/Dark modes and tablet sizes.

ParametersJSON Schema
NameRequiredDescriptionDefault
testModesNo
screenNameYesName of the screen (e.g. 'DashboardScreen').
composableNameYesName of the root composable function (e.g. 'DashboardScreenContent').

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations, the description carries the behavioral burden. It does disclose that the tool creates Roborazzi screenshot suites, works emulator-less, and targets light/dark/tablet variants. However, it does not mention whether files are written to the project, whether existing suites are overwritten, or whether any Gradle/build configuration is required.

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?

One front-loaded sentence conveys the verb, target platform, output artifact, testing method, and mode/tablet scope with no filler. Every clause adds information.

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

Completeness3/5

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

For a code-generation tool with no annotations or output schema, the description is adequate but not complete: it explains what is generated and for which modes, but does not state output location, prerequisites (existing Compose project/Roborazzi setup), or behavior for the 'large-font' test mode.

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

Parameters3/5

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

The schema already documents screenName and composableName, and the description adds context for testModes by naming Light/Dark and tablet variants. It does not go beyond that, and it omits the 'large-font' enum value, so it adds modest value but leaves coverage at a middle level.

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 the specific verb 'Generates' and clearly identifies the resource: Roborazzi screenshot test suites for Jetpack Compose screens. It adds the precise goal ('emulator-less visual regression testing') and scope (Light/Dark modes and tablet sizes), which distinguishes it from generic test-generation sibling tools.

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 phrase 'for emulator-less visual regression testing' gives clear context for when this tool should be selected, and the Roborazzi/Compose details make it distinct from the generic generate_and_run_tests sibling. It does not explicitly list exclusions or say 'use X instead', so it stops short of a 5.

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

generate_kotlin_api_bridgeB

Generates full-stack API bridge contracts between Ktor backend and clients, including Ktor routes, Kotlin/Dart DTOs, and OpenAPI specifications.

ParametersJSON Schema
NameRequiredDescriptionDefault
modelsNoList of data models.
endpointsNoList of endpoints.
serviceNameYesName of the API service (e.g. 'Order', 'Payment', 'Auth').

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It states that the tool produces API bridge artifacts, but it does not reveal side effects such as file system writes, project modifications, overwriting behavior, required project state, or reversibility. This is a meaningful gap for a code generation tool.

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?

The description is a single sentence with no filler words. It front-loads the tool's core action and resource, then lists concrete output types. Every phrase adds useful context.

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

Completeness3/5

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

The schema covers all parameters and the description names key output artifacts, but the tool lacks an output schema and annotations. Given the complexity of generating full-stack contracts, the description would benefit from mention of expected output structure, generation location, or prerequisites, so it is only minimally complete.

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

Parameters3/5

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

Schema description coverage is 100%, with 'serviceName', 'models', and 'endpoints' each documented in the input schema. The description adds no additional parameter-level semantics beyond the schema, so the baseline score of 3 is appropriate.

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 uses a specific verb ('Generates'), names a clear resource ('full-stack API bridge contracts between Ktor backend and clients'), and enumerates concrete deliverables (Ktor routes, Kotlin/Dart DTOs, OpenAPI specifications). This makes the tool's purpose specific and distinguishes it from general backend scaffolding siblings like scaffold_kotlin_backend.

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

Usage Guidelines2/5

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

The description provides no explicit guidance on when to use this tool versus alternatives such as scaffold_kotlin_backend or generate_kotlin_platform_config. There are no conditions, exclusions, or sibling comparisons, so the agent must infer usage solely from the tool's name and output description.

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

generate_kotlin_chartsB

Scaffolds interactive Jetpack Compose animated Canvas charts (Line, Bar, Area graphs) with gradient fills and tween animations.

ParametersJSON Schema
NameRequiredDescriptionDefault
chartTitleYes
dataPointsNo

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations, the description must carry behavioral disclosure. It does state that the tool scaffolds charts and characterizes output (animated, Canvas, gradient fills, tween animations), but it doesn't say whether files are overwritten, where code is placed, or any side effects of scaffolding.

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?

One tight sentence that front-loads the verb/resource and packs relevant feature attributes without padding.

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

Completeness2/5

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

For a tool with no annotations and no output schema, the description should also address parameter roles, expected output, and side effects. It captures the artifact type but leaves an agent guessing about how to supply data and what the generated code will contain beyond the advertised visual features.

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

Parameters1/5

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

Schema description coverage is 0% and the description never mentions chartTitle or dataPoints. The agent gets no help understanding how the parameters affect the generated charts, aside from the minimal schema types.

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?

Description uses a specific verb ('Scaffolds') and identifies the exact resource: interactive Jetpack Compose animated Canvas charts, enumerating Line, Bar, and Area variants. This separates it clearly from sibling Kotlin scaffolding tools.

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

Usage Guidelines3/5

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

The function is clear enough that an agent can infer 'use this when generating Compose chart components,' but no explicit when/when-not guidance or alternative tool is mentioned. The sibling list hints at alternatives like design_kotlin_ui, but the description doesn't route between them.

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

generate_kotlin_cicd_pipelineB

Generates production GitHub Actions workflows, Detekt static analysis steps, Dockerfile for Ktor backend, and Gradle build caching.

ParametersJSON Schema
NameRequiredDescriptionDefault
targetNoandroid-compose
projectNameYesProject name.
enableDetektNoEnable Detekt static analysis step.
enableDockerNoGenerate multi-stage Dockerfile for backend.

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations provided, the description carries the full behavioral disclosure burden. It states what is generated but does not disclose whether the tool writes files, returns content, modifies the existing project, requires authentication, or overwrites existing files. It also does not mention that generated artifacts depend on target/enableDetekt/enableDocker choices.

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?

The description is a single concise sentence, front-loaded with the most important verb and primary artifact ('GitHub Actions workflows'). Every listed item adds information, and there is no redundant or filler wording.

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

Completeness3/5

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

For a medium-complexity code generation tool with no output schema and no annotations, the description is minimally viable: it names the core artifacts. But it omits the tool's return/output behavior, whether files are written or emitted, and how target changes the output. The defaults and enum values are available in the schema, but the description itself leaves important behavioral context to inference.

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

Parameters3/5

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

Schema description coverage is 75%, and projectName, enableDetekt, and enableDocker already have schema descriptions. The description adds high-level context like 'production' and 'Gradle build caching' and roughly aligns Detekt/Docker with the boolean parameters. However, the target parameter has no schema description, and the tool description does not clarify how the five target values affect the generated pipeline, only hinting at Ktor backend.

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

Purpose4/5

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

The description uses the specific verb 'Generates' and lists concrete output resources: GitHub Actions workflows, Detekt steps, a Dockerfile for Ktor backend, and Gradle build caching. This clearly separates the tool from siblings like generate_kotlin_localization or scaffold_kotlin_backend, though it does not explicitly name a differentiating alternative. The phrase 'Dockerfile for Ktor backend' is slightly narrower than the broad target enum, which creates minor ambiguity.

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

Usage Guidelines3/5

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

Usage is implied by the name and artifact list: the agent can infer to use this tool when a Kotlin CI/CD pipeline is needed. However, there is no explicit guidance about when to prefer this over related generate/scaffold tools, no exclusions, and no mention of prerequisites such as requiring an existing Kotlin project or repository context.

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

generate_kotlin_localizationB

Generates Android strings.xml resource bundles (values, values-es, values-ar for RTL) and Jetpack Compose AppStrings type-safe helpers.

ParametersJSON Schema
NameRequiredDescriptionDefault
stringKeysNoMap of string keys to translations.
defaultLocaleNoen
supportedLocalesNo

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral burden. It does disclose the generated outputs (strings.xml bundles and Compose AppStrings helpers), including the RTL note for Arabic, but it omits side effects such as file creation, overwriting behavior, or project integration requirements.

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?

The description is a single, front-loaded sentence with no filler. It states the tool's output and key locale detail efficiently.

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

Completeness2/5

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

Given there is no output schema and no annotations, the description should explain how parameters affect generation, what files are written, and what the agent can expect back. It only covers the general output shape, leaving locale configuration, default locale behavior, and invocation results underspecified.

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

Parameters2/5

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

Schema description coverage is only 33percent; the description does not describe defaultLocale or supportedLocales semantics or how they map to the generated bundles. It hints at en/es/ar locales through values, values-es, values-ar, but does not compensate for the undocumented parameters.

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 uses a specific verb ('Generates') and names concrete resources: Android strings.xml bundles for values, values-es, values-ar and Jetpack Compose AppStrings helpers. This clearly distinguishes it from sibling tools like generate_kotlin_api_bridge or scaffold_kotlin_database.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives, nor any exclusions or prerequisites. The description implies Android localization work, but never says explicitly when an agent should choose this over other Kotlin generation tools.

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

generate_kotlin_mock_factoryA

Generates realistic domain mock data factories, fake entities, and in-memory simulated Flow repositories for instant hackathon UI prototyping.

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldsNo
itemCountNo
domainNameYesName of the entity/domain.

TDQS

A3.7/5.0
Behavior3/5

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

No annotations exist, so the description carries the full burden. It does disclose that the generated repositories are in-memory and simulated, which sets important expectations. But it does not mention file system side effects, overwrite behavior, or setup requirements beyond saying 'generates'.

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?

The description is a single, front-loaded sentence with no wasted words. It efficiently lists the generated outputs and the purpose without redundancies, making it easy to parse.

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

Completeness2/5

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

The tool generates multiple artifact types and has three parameters, yet the description stays at a high level. It lacks detail on how fields and itemCount affect the output, what the generated code looks like, and how an agent should integrate it into a project. Without an output schema, more context is needed.

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

Parameters2/5

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

Schema coverage is only 33% (only domainName is documented), and the description adds no explanation for the 'fields' or 'itemCount' parameters. Though the schema's enum lists possible field types, the description does not compensate for the low coverage by explaining how to configure fields or control item count.

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 uses a specific verb ('Generates') and names concrete artifacts: mock data factories, fake entities, and in-memory simulated Flow repositories. It clearly ties the tool to 'instant hackathon UI prototyping' and distinguishes it from sibling tools that scaffold real backends or databases by emphasizing the mock/simulated nature.

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 phrase 'for instant hackathon UI prototyping' provides a clear context for when to use the tool, and the mock/fake/simulated language implies it is not for production. However, it does not explicitly name alternatives or state when not to use it, so it stops short of a 5.

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

generate_kotlin_platform_configA

Generates AndroidManifest.xml permissions, Proguard/R8 rules, Keystore release signing configurations, and Compose Multiplatform desktop packaging.

ParametersJSON Schema
NameRequiredDescriptionDefault
targetNoandroid-compose
packageNameNoAndroid package name / namespace (e.g. 'com.example.app').com.example.app
permissionsNoAndroid permissions (e.g. ['INTERNET', 'CAMERA', 'ACCESS_FINE_LOCATION']).
projectNameYesApplication name.
enableProguardNoWhether to enable Proguard / R8 code shrinking and resource optimization.

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations provided, the description carries the behavioral burden. It does disclose the main outputs the tool generates, which is useful, but it does not mention side effects such as whether existing files are overwritten, whether a project must already exist, or whether keystore signing config uses placeholders. These are significant for a generation tool that likely writes to disk.

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?

The description is a single, dense sentence that front-loads the action and enumerates the artifacts without any filler. Every part of the sentence contributes useful information.

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

Completeness3/5

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

The description explains what is generated but misses important context: it does not mention the `target` enum, the `ktor-backend` option, or how behavior differs across targets. It also lacks side-effect and prerequisite information. Given there is no output schema and no annotations, the description is only partially complete for safe tool invocation.

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

Parameters3/5

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

Schema description coverage is high (80%), with four of five parameters already documented. The description adds limited parameter meaning by mapping outputs to concepts like permissions and Proguard/R8, but it does not clarify how parameters like `target` or `projectName` affect behavior beyond what the schema already provides.

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 uses a specific verb, 'Generates', and lists concrete artifacts: AndroidManifest.xml permissions, Proguard/R8 rules, Keystore release signing configurations, and Compose Multiplatform desktop packaging. This clearly differentiates the tool from siblings like generate_kotlin_localization or generate_kotlin_cicd_pipeline.

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

Usage Guidelines2/5

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

No explicit guidance is given about when to use this tool versus alternatives. The description implies it is for platform-level configuration, but it does not state when to choose this over related scaffolding tools or how the `target` enum should drive the decision, especially since `ktor-backend` is not mentioned in the description.

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

orchestrate_kotlin_projectA

End-to-end multi-agent orchestration for building Kotlin applications. Executes the full pipeline: prompt decomposition, dependency catalog creation, UI design, backend scaffolding, test suites, and setup scripts.

ParametersJSON Schema
NameRequiredDescriptionDefault
promptYesThe complete project prompt or feature specification.
includeUiNoWhether to generate Jetpack Compose UI.
projectNameNoProject name (e.g. 'FitnessTracker', 'ShopFlow').KotlinApp
includeTestsNoWhether to generate QA test suites.
includeBackendNoWhether to scaffold backend endpoints.
targetPlatformNoTarget platform.android-compose

TDQS

A3.7/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden of disclosing behavior. It does reveal that this is a multi-agent orchestration that executes a multi-stage pipeline, but it does not disclose side effects, filesystem changes, long-running behavior, or prerequisites such as credentials or external services.

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?

Two sentences with no filler: the first states the tool's purpose, the second concretely lists the pipeline stages. The colon-delmited list is compact and informative.

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

Completeness3/5

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

For a complex orchestration tool with six parameters, no annotations, no output schema, and many siblings, the description covers the high-level scope but omits expected return value, typical runtime, side effects, and when to prefer it over individual tools. It is adequate but not fully complete.

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

Parameters3/5

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

The input schema already documents all six parameters with 100% coverage, so the description does not need to repeat them. The pipeline list loosely maps to the boolean toggles and target platform, but adds no new parameter-level detail.

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 names a specific action (end-to-end multi-agent orchestration) and a clear resource (Kotlin applications), then enumerates the pipeline stages it executes. This positions it as the full-project coordinator and distinguishes it from the individual sibling tools like design_kotlin_ui or scaffold_kotlin_backend.

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

Usage Guidelines3/5

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

The phrase 'End-to-end' and 'full pipeline' imply this tool is for complete project generation rather than single-step tasks, but it does not explicitly state when to use it over the sibling tools or when not to use it. An agent must infer that individual stages should be handled by the dedicated sibling tools.

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

research_kotlin_dependenciesA

Researches Maven Central for up-to-date, compatible Kotlin library versions, generates a standard Gradle Version Catalog (libs.versions.toml), build.gradle.kts, and settings.gradle.kts with Kotlin 2.x K2 compiler compatibility.

ParametersJSON Schema
NameRequiredDescriptionDefault
librariesNoList of specific library names or keywords to search (e.g. ['ktor', 'coil', 'room']).
targetPlatformYesTarget Kotlin platform.android-compose

TDQS

A4/5.0
Behavior4/5

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

With no annotations provided, the description carries the behavioral disclosure burden. It clearly states that the tool queries Maven Central and generates specific files, which communicates the main side effects. It does not mention overwrite behavior or whether content is written to disk versus returned, but the generation of concrete file types is fairly explicit.

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?

The description is a single dense, front-loaded sentence with no filler words. It conveys the main action and key outputs efficiently, though splitting it into two sentences could improve scannability.

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

Completeness3/5

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

The tool has no output schema and no annotations, so the description is the primary source of runtime context. It covers the main behavior and generated artifacts, but it does not clarify what the tool returns or how the optional libraries parameter interacts with targetPlatform, leaving some ambiguity for an agent.

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

Parameters3/5

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

Schema description coverage is 100%, so the input schema already documents both parameters adequately. The description adds useful context about Maven Central and K2 compatibility but does not add per-parameter meaning beyond what the schema provides, so the baseline of 3 is appropriate.

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 uses specific verbs ('researches', 'generates') tied to concrete resources (Maven Central, libs.versions.toml, build.gradle.kts, settings.gradle.kts), so an agent can clearly identify what the tool does. It is also easy to distinguish from the sibling tools, which focus on scaffolding, design, diagnostics, or other concerns.

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 phrase 'up-to-date, compatible Kotlin library versions' and the mention of Kotlin 2.x K2 compiler compatibility imply when this tool should be used: when a project needs current dependency versions and a standard Gradle version catalog. However, it does not explicitly state when not to use it or name alternative tools.

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

scaffold_kotlin_ai_moduleA

Scaffolds Google GenAI Kotlin SDK / MediaPipe on-device LLM inference modules with Flow streaming and ViewModel state integration.

ParametersJSON Schema
NameRequiredDescriptionDefault
providerNogoogle-genai
featureNameYesName of the AI feature (e.g. 'ChatAssistant', 'CodeExplainer', 'SmartSearch').
systemInstructionNoCustom system prompt/instruction for the AI model.

TDQS

A3.9/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It does disclose the content of the generated module (Flow streaming, ViewModel state integration) which is useful behavioral context. However, it does not mention side effects such as file creation, overwriting, or project structure requirements, which would be important for a scaffolding operation.

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?

A single, information-dense sentence with no wasted words. The core action and resource are front-loaded, and the additional detail about Flow streaming and ViewModel integration earns its place by clarifying the generated module's architecture.

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

Completeness3/5

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

The description covers the core purpose and key output characteristics, but with no output schema or annotations, important contextual information is missing: what files/artifacts are generated, whether the tool modifies existing code, and any prerequisites about the target Kotlin project. It is adequate for a simple scaffolding tool but not fully complete.

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

Parameters3/5

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

Schema description coverage is 67%, with featureName and systemInstruction already described in the schema. The description adds some context by mentioning the frameworks that map to the provider enum, but it does not explicitly explain how provider or systemInstruction influence the scaffolded output. It partially compensates for the undocumented provider parameter but not fully.

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 uses a specific verb ('Scaffolds') and names the resource precisely: 'Google GenAI Kotlin SDK / MediaPipe on-device LLM inference modules'. It adds concrete technical details (Flow streaming, ViewModel state integration) that clearly distinguish it from sibling scaffold tools such as scaffold_kotlin_backend or scaffold_kotlin_database.

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 description clearly identifies the intended usage context: scaffolding AI inference modules for Kotlin using specific on-device/GenAI frameworks. It implies when to use this tool over siblings by naming the niche, but it does not explicitly state exclusions or point to alternative tools.

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

scaffold_kotlin_auth_flowB

Scaffolds an instant Compose HorizontalPager onboarding tour, Material 3 Login screen with Google auth, and state-preserving AuthViewModel.

ParametersJSON Schema
NameRequiredDescriptionDefault
appNameYesApplication name.

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It does state what artifacts will be created, which is helpful, but it does not explain side effects such as file creation or overwrite behavior, whether configuration is generated, what 'instant' means operationally, or what authentication credentials are required. This is a meaningful transparency gap for a scaffolding and generation tool.

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?

The description is a single, dense sentence that front-loads the verb and resource, then efficiently lists the three key deliverables. There is no wordiness or redundant information.

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

Completeness2/5

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

The tool scaffolds authentication flow, which generally involves external configuration, credential handling, and generated source files. The description mentions the deliverables but omits important operational details: what files are created, how the appName is used, whether Google auth requires keys or configuration, and what the tool returns or affects. With no output schema and no annotations, this is insufficient for an agent to invoke it with full confidence.

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

Parameters3/5

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

The schema covers the only parameter, appName, with full description coverage, so the baseline is 3. The description does not add any extra meaning to appName beyond 'Application name', but since the schema already documents it fully, no compensation is needed.

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

Purpose4/5

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

The description gives a specific verb ('scaffolds') and a clear resource ('auth flow') and enumerates the concrete artifacts it produces: a HorizontalPager onboarding tour, a Material 3 Login screen with Google auth, and a state-preserving AuthViewModel. This is specific enough to distinguish it from most sibling tools, though it does not explicitly contrast itself with any of them.

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

Usage Guidelines3/5

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

Usage context is implied: an agent would choose this when the project needs authentication scaffolding. However, there is no explicit guidance on when to prefer this over related sibling tools like design_kotlin_ui or scaffold_kotlin_backend, and no mention of prerequisites such as Firebase setup or Google client configuration.

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

scaffold_kotlin_backendB

Generates scalable Ktor or Spring Boot Kotlin backend services, routes, repositories, domain entities, Koin DI configuration, and coroutine-based async handlers.

ParametersJSON Schema
NameRequiredDescriptionDefault
databaseNoDatabase ORM / persistence library.exposed
domainNameYesName of the primary domain entity (e.g. 'Order', 'Product', 'Message').
backendTypeNoBackend framework.ktor

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations, the description bears the full transparency burden; it does clarify that the tool generates multiple artifact types, which is useful behavioral detail. It does not disclose side effects such as whether files are created/overwritten in the current project, whether it assumes an existing project, or what state results after invocation.

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?

The description is one dense, front-loaded sentence with the main outcome first and a compact list of generated components. 'Scalable' is somewhat vague, but the sentence stays economical and easy to scan.

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

Completeness2/5

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

This is a multi-option scaffold tool with no output schema and no annotations, so the description should explain lifecycle and impact, but it does not. It also leaves a schema mismatch unaddressed: backendType includes kmp-shared-client and database includes room/sqldelight, yet the description only mentions Ktor/Spring Boot backend services.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline applies and the description need not restate parameter meanings. It adds only a slight mapping by mentioning Ktor and Spring Boot, which matches the backendType enum, but provides no extra semantics for domainName or database beyond the schema.

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

Purpose4/5

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

Uses a specific verb ('Generates') on a clear resource: Kotlin backend services with routes, repositories, domain entities, Koin DI, and coroutine handlers. It is clearly distinct from sibling database/auth/observability scaffolds, but it does not explicitly contrast itself with those alternatives and omits the kmp-shared-client backend type from the description.

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

Usage Guidelines3/5

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

The description implies the tool is for scaffolding a Kotlin backend stack, and the listed components signal the kind of task it addresses. It gives no explicit when-to-use guidance, no conditions for choosing Ktor vs Spring Boot, and no 'don't use for X' exclusions.

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

scaffold_kotlin_databaseB

Scaffolds Android Room 2.7+ (KSP) database with entities, DAOs returning Coroutine Flow streams, and AutoMigration strategies.

ParametersJSON Schema
NameRequiredDescriptionDefault
entitiesNo
databaseNameYesName of the Room database (e.g. 'App', 'Wallet', 'Task').
schemaVersionNo

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden, and it only partially pays it: it discloses what gets generated (entities, DAOs, migrations) but is silent on critical scaffolding behaviors โ€” whether existing files are overwritten, whether the operation is idempotent, and what project context it assumes. For a code-generation tool, overwrite behavior is essential to disclose.

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?

One sentence of roughly 20 words with no filler. The action verb and resource are front-loaded, and every clause adds a concrete detail (Room 2.7+, KSP, Flow-returning DAOs, AutoMigration).

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

Completeness2/5

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

For a tool with a nested entities parameter, no output schema, and no annotations, the description leaves too much unsaid: how to structure entity definitions, what schemaVersion controls, and what the scaffold produces on disk. An agent can correctly supply databaseName but is guessing on the entities object beyond its property names.

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

Parameters2/5

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

Schema description coverage is only 33% (databaseName alone), so the description must compensate, but it doesn't. It names 'entities' but gives no semantics for the nested structure โ€” what 'fields' (string-to-string map) means, how primaryKey relates to fields, or how tableName maps to the entity. schemaVersion is never mentioned, leaving an undocumented 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 verb ('Scaffolds') and resource ('Android Room 2.7+ (KSP) database'), then adds precise scope: entities, DAOs returning Coroutine Flow streams, and AutoMigration strategies. This clearly distinguishes it from siblings like scaffold_kotlin_backend or scaffold_kotlin_auth_flow.

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

Usage Guidelines3/5

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

The version and tooling constraints ('2.7+ (KSP)') imply this is for Android projects using KSP-based Room, which nudges an agent toward correct usage. However, there is no explicit when-to-use statement, no exclusion of alternatives (e.g., KAPT-based Room or non-Room persistence), and no mention of prerequisites like an existing Android project.

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

scaffold_kotlin_observabilityC

Scaffolds Sentry/Firebase Crashlytics crash reporting, type-safe analytics event loggers, and OkHttp network latency interceptors.

ParametersJSON Schema
NameRequiredDescriptionDefault
providerNosentry
customEventNamesNo

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral side effects itself, but it only says 'Scaffolds' and lists outputs. It does not state whether it creates/modifies files, whether it can overwrite existing code, whether external credentials are needed, or what the operational impact is. This is a significant transparency gap for a code-generation tool.

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?

The description is a single concise sentence that front-loads the main output categories and contains no filler. The omission of Datadog and any parameter detail prevents a perfect score, but as a compact summary it is effective.

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

Completeness2/5

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

For a scaffold tool with no annotations, no output schema, and 0% schema description coverage, the description is too sparse to support correct invocation. It does not explain preconditions, generated file behavior, how customEventNames is used, or why Datadog is supported. An agent is left to guess important details about the tool's operation and options.

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

Parameters2/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 by explaining the parameters. It makes no explicit mention of 'provider' or 'customEventNames'. The provider enum is somewhat self-explanatory from the schema, and 'analytics event loggers' loosely relates to customEventNames, but the description does not clarify how either parameter affects the generated scaffold or what values mean.

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

Purpose4/5

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

The description uses a specific verb ('Scaffolds') and clearly names what is generated: crash reporting, analytics event loggers, and network latency interceptors. This clearly distinguishes it from sibling scaffolding tools by observability domain. However, it mentions only Sentry/Firebase while the schema also supports Datadog, so the purpose statement is not fully aligned with the actual parameter options.

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

Usage Guidelines3/5

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

Usage is implied from the domain-specific content: an agent can infer this tool is for crash reporting, analytics logging, and network observability. However, there is no explicit when-to-use guidance, no exclusions, and no mention of when a different scaffold sibling would be more appropriate.

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

scaffold_kotlin_offline_resilienceB

Scaffolds an automatic OkHttp fallback interceptor that catches Wi-Fi drops / network failures and seamlessly serves cached/embedded mock data with zero crash during live stage demos.

ParametersJSON Schema
NameRequiredDescriptionDefault
enableDemoMockFallbackNo

TDQS

B3.2/5.0
Behavior3/5

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

With no annotations, the description carries the behavioral disclosure burden. It explains the core behavior: generating an interceptor that catches failures and serves cached/mock data without crashing. It does not mention side effects on the project, dependencies required, or what happens when the parameter is disabled.

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?

The description is a single compact sentence that front-loads the artifact and its purpose. The 'zero crash during live stage demos' phrasing is slightly promotional, but it does not bloat the description meaningfully.

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

Completeness2/5

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

For a scaffolding tool with one optional boolean parameter, the core purpose is clear, but the parameter is undocumented and there is no guidance on side effects, prerequisites, or behavior when the fallback is disabled. An agent cannot fully predict the impact of invoking this tool.

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

Parameters1/5

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

Schema description coverage is 0%, and the description does not mention enableDemoMockFallback at all. The parameter name and default value provide some semantic hint, but the description adds no meaning about how the boolean controls the fallback behavior, so it fails to compensate for the low 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?

The description uses a specific verb ('Scaffolds') and names a concrete artifact: an OkHttp fallback interceptor that serves cached/embedded mock data on network failure. This makes it clearly distinguishable from sibling tools like scaffold_kotlin_backend or generate_kotlin_mock_factory.

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

Usage Guidelines3/5

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

The description implies a use case: WiFi drops, network failures, and live stage demos. However, it gives no explicit guidance on when to choose this tool over other scaffolding tools or when not to use it, and no alternatives are mentioned.

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

scaffold_kotlin_project_docsB

Scaffolds dynamic PRD.md, architecture.md, rules.md, phases.md, design.md, and memory.md tailored to user prompts. Verifies existing files before writing to avoid overwriting existing documentation.

ParametersJSON Schema
NameRequiredDescriptionDefault
targetNoandroid-compose
projectNameYesName of the Kotlin project.
projectTypeNo
appDescriptionYesDetailed description of the application, features, and intended audience.
outputDirectoryNoDirectory where markdown blueprint files will be written. Defaults to current working directory.
designPreferencesNo
overwriteExistingNo
preferredArchitectureNoSpecific architectural style (e.g. 'MVI Clean Architecture', 'MVVM with Coroutines', 'DDD Layered').

TDQS

B3.2/5.0
Behavior3/5

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

With no annotations provided, the description carries the full transparency burden. It does disclose a key behavioral trait by stating that existing files are verified before writing to avoid overwriting documentation. However, it leaves ambiguity around the overwriteExisting parameter: whether setting it to true bypasses this verification is not clarified, and no other side effects (e.g., creating directories) are mentioned.

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?

The description is two sentences with no filler. It front-loads the action, enumerates the output files, and states the safety behavior. Slight vagueness in 'tailored to user prompts' is acceptable because the schema shows the prompt-related fields.

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

Completeness2/5

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

The tool is complex with 8 parameters, a nested object, and no output schema, yet the description only lists the generated markdown files and one safety behavior. It does not explain how target, projectType, or designPreferences affect the docs, nor what success, failure, or return behavior looks like. An agent would need to infer too much to confidently invoke it.

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

Parameters2/5

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

Schema description coverage is only 50%, and parameters like target, projectType, designPreferences, and overwriteExisting are not described in the schema. The description's phrase 'tailored to user prompts' weakly implies that these inputs influence generated content, but it does not explain how each parameter maps to the documentation output or provide semantics beyond what the schema already gives.

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 states a specific verb ('Scaffolds') and the exact resources it produces: PRD.md, architecture.md, rules.md, phases.md, design.md, and memory.md. This clearly distinguishes it from sibling scaffolding tools like scaffold_kotlin_backend or scaffold_kotlin_database, which target different artifacts.

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

Usage Guidelines2/5

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

No explicit guidance is given about when to use this tool versus alternatives like scaffold_kotlin_backend or generate_kotlin_api_bridge. The phrase 'tailored to user prompts' implies customization but does not state the intended scenario (e.g., initial project kickoff or documentation generation) or provide exclusion criteria.

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. 24 tool updatesv1.0.0
    • First observedaudit_kotlin_accessibility
    • First observedaudit_kotlin_codebase
    • First observedaudit_kotlin_security
    • First observedconfigure_kotlin_deep_links
    • First observeddecompose_kotlin_prompt
    • First observeddesign_kotlin_ui
    • First observeddiagnose_kotlin_errors
    • First observedgenerate_and_run_tests
    • First observedgenerate_compose_screenshot_tests
    • First observedgenerate_kotlin_api_bridge
    • First observedgenerate_kotlin_charts
    • First observedgenerate_kotlin_cicd_pipeline
    • First observedgenerate_kotlin_localization
    • First observedgenerate_kotlin_mock_factory
    • First observedgenerate_kotlin_platform_config
    • First observedorchestrate_kotlin_project
    • First observedresearch_kotlin_dependencies
    • First observedscaffold_kotlin_ai_module
    • First observedscaffold_kotlin_auth_flow
    • First observedscaffold_kotlin_backend
    • First observedscaffold_kotlin_database
    • First observedscaffold_kotlin_observability
    • First observedscaffold_kotlin_offline_resilience
    • First observedscaffold_kotlin_project_docs

TDQS

A3.7/5.0

Scored across 24 tools

Disambiguation5/5

Each tool targets a distinct phase or concern of Kotlin developmentโ€”localization, dependencies, UI, backend, security, docs, etc.โ€”so an agent can reliably pick the right one. The closest pairs, such as generate_and_run_tests versus generate_compose_screenshot_tests, are still clearly separated by scope.

Naming Consistency5/5

All tool names use snake_case with a leading verb and consistently follow a verb_kotlin_<target> or verb_<domain> pattern. Even with varied verbs like generate, scaffold, audit, design, configure, and diagnose, the naming convention is predictable and uniform.

Tool Count3/5

24 tools is on the heavy side for a single server, exceeding the ideal 3โ€“15 range. However, each tool maps to a distinct Kotlin development task, so the count is defensible even though the server feels broad rather than lean.

Completeness5/5

The server covers the full Kotlin project lifecycle: prompt decomposition, dependency resolution, UI/backend/database/auth scaffolding, API contracts, tests, CI/CD, docs, security, observability, accessibility, and offline resilience. There are no obvious dead ends or critical missing operations for its stated purpose.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers