Skip to main content
Glama

DHIS2 MCP Server

TypeScript Node.js DHIS2 MCP

🚀 Production Ready: A comprehensive Model Context Protocol (MCP) server for DHIS2 development and management, providing 40+ tools for complete DHIS2 Web API coverage.

✨ Features

🏗️ Complete DHIS2 Web API Coverage

  • Aggregate Data Model: Data elements, data sets, categories, validation rules

  • Event/Tracker Data Model: Programs, tracked entities, events, enrollments

  • Analytics & Reporting: Dashboards, visualizations, event analytics

  • Bulk Operations: Mass data import/export with validation

  • System Management: Connection handling, system info, statistics

🛡️ Production Grade

  • Type Safety: Comprehensive TypeScript interfaces with strict mode

  • Error Handling: Robust error management with meaningful messages

  • Testing: 26 automated tests ensuring reliability

  • Code Quality: ESLint validation and best practices

  • Build Pipeline: Complete development workflow

🔧 Developer Experience

  • 40+ MCP Tools: Every major DHIS2 operation covered

  • Detailed Schemas: Rich input validation and documentation

  • Easy Setup: Simple npm commands for all operations

  • Interactive: Perfect for API exploration and learning

🔧 Development Assistant: A Model Context Protocol (MCP) server providing 108 tools for DHIS2 development, including code generators, debugging helpers, and documentation access for web and Android app development.

Related MCP server: Onshape MCP Server

✨ What This Actually Is

🛠️ DHIS2 Development Assistant

  • Code Generators: Creates boilerplate code for DHIS2 apps (web and Android)

  • Configuration Helpers: Generates build configs, manifests, and setup files

  • Debugging Tools: Diagnoses common DHIS2 development issues (CORS, auth, build problems)

  • API Wrapper: Basic DHIS2 Web API client for data operations

  • Documentation Access: Framework for querying local and web documentation

📱 Mobile Development Support

  • Android Project Setup: Complete Android app scaffolding with DHIS2 SDK integration

  • UI Code Generation: Jetpack Compose components, RecyclerView adapters, navigation patterns

  • Mobile-Specific Features: Location services, camera, offline sync, notifications

  • Architecture Patterns: MVVM, MVP, MVI implementations

🌐 Web Development Support

  • DHIS2 App Platform: Project initialization and configuration

  • UI Component Generation: Form patterns, data display, navigation layouts using @dhis2/ui

  • Build System Configuration: Webpack, Vite, d2 CLI setup

  • Testing Framework Setup: Jest, Cypress, Playwright configurations

🎯 Realistic Feature Overview

What Works Well

  • 108 MCP Tools: All tools have valid schemas and integrate properly

  • Dual-Mode Operation: Development tools work without DHIS2 connection, API tools require connection

  • Code Generation: Produces actual, usable code snippets and configurations

  • Error Handling: Graceful handling of invalid inputs and missing dependencies

  • Performance: All tools load in <10ms with minimal memory usage (82KB)

⚠️ Current Limitations

  • Basic DHIS2 API Coverage: ~30 endpoints

  • Code Generators Only: Outputs code templates and guides, doesn't perform actual setup

  • Mock External Integrations: Documentation access requires external MCP servers to be fully functional

  • Limited Testing: 4 test files covering basic functionality

🔍 What's Actually Tested

  • Schema Validation: 100% of tools have valid MCP schemas

  • Code Generation: Android and web app generators produce proper output

  • DHIS2 Client: Basic API operations work with real DHIS2 instances

  • Integration: All components work together without conflicts

🚀 Quick Start

Prerequisites

  • Node.js 18+

  • MCP client (Claude Code, Claude Desktop, etc.)

  • DHIS2 instance (optional - many tools work without it)

Installation

Option 1: Local Development

# Clone and build locally
git clone https://github.com/yourusername/dhis2-mcp.git
cd dhis2-mcp
npm install
npm run build
# Use directly in MCP client config
npx dhis2-mcp

🔧 MCP Client Configuration

For Claude Code (Cursor)

Create .claude/config.json in your project:

{
  "mcpServers": {
    "dhis2-mcp": {
      "command": "npx",
      "args": ["-y", "dhis2-mcp"]
    }
  }
}

For Claude Desktop

Add to your MCP configuration:

{
  "mcpServers": {
    "dhis2-mcp": {
      "command": "npx",
      "args": ["-y", "dhis2-mcp"]
    }
  }
}

📖 Usage Examples

🏗️ Initialize DHIS2 Web App

// Use the dhis2_init_webapp tool
{
  "appName": "health-tracker",
  "appTitle": "Health Tracker",
  "appType": "app",
  "typescript": true,
  "template": "basic"
}

📱 Create Android App Structure

// Use the dhis2_android_init_project tool
{
  "projectName": "DHIS2HealthApp",
  "applicationId": "org.dhis2.health",
  "language": "kotlin",
  "architecture": "mvvm",
  "features": ["location", "camera", "offline"]
}

🎨 Generate UI Components

// Use the dhis2_generate_ui_form_patterns tool
{
  "componentName": "DataElementForm",
  "includeValidation": true,
  "includeDatePicker": true,
  "includeMultiSelect": true
}

🔍 Debug Development Issues

// Use the dhis2_diagnose_cors_issues tool
{
  "dhis2Instance": "https://play.dhis2.org/2.40.4",
  "localDevelopmentUrl": "http://localhost:3000",
  "browser": "chrome",
  "symptoms": ["login_fails", "api_requests_blocked"]
}

📚 Access Documentation

// Use the dhis2_query_documentation tool
{
  "topic": "LocationManager",
  "platform": "android", 
  "searchType": "both",
  "language": "kotlin"
}

🛠️ Available Tool Categories

🌐 Web Development (23 tools)

  • App initialization and configuration

  • UI component generation (@dhis2/ui patterns)

  • Build system setup (webpack, vite, d2)

  • Testing framework configuration

  • Authentication patterns

📱 Android Development (17 tools)

  • Project initialization with DHIS2 SDK

  • Gradle configuration and build setup

  • UI pattern generation (Compose, XML)

  • Mobile-specific features (GPS, camera, notifications)

  • Offline sync and data storage

🔗 DHIS2 API Integration (52 tools)

  • Data elements, data sets, categories

  • Programs, tracked entities, events

  • Analytics and reporting

  • Bulk data operations

  • System management

🐛 Debugging & Troubleshooting (8 tools)

  • CORS issue diagnosis

  • Authentication debugging

  • Build problem resolution

  • Performance optimization

  • Environment validation

📚 Documentation Access (9 tools)

  • Local Android SDK documentation

  • Web documentation search

  • Integration guides generation

  • Code example extraction

  • Troubleshooting assistance

🎯 Use Cases

1. Learning DHIS2 Development

Perfect for developers new to DHIS2 who need code examples and project structure guidance.

2. Rapid Prototyping

Quickly generate app scaffolding and UI components to get projects started.

3. Debugging Development Issues

Diagnose common problems like CORS issues, authentication failures, and build errors.

4. Code Reference

Generate examples of DHIS2 integration patterns and best practices.

5. Mobile App Development

Get Android-specific code and configuration for DHIS2 mobile apps.

📊 Project Stats

Metric

Value

Total MCP Tools

108

Development Tools

47 (work without DHIS2 connection)

API Tools

52 (require DHIS2 connection)

Documentation Tools

9 (require external MCPs)

Test Files

4 (basic functionality testing)

TypeScript Interfaces

~100 (comprehensive type safety)

Tool Load Time

<10ms (excellent performance)

Memory Usage

~82KB (very efficient)

🔄 Realistic Roadmap

Current Status (v1.0)

  • Functional MCP server with 108 tools

  • Code generation for web and Android

  • Basic DHIS2 API integration

  • Debugging and troubleshooting helpers

🔮 Future Improvements

  • Enhanced Testing: Expand test coverage beyond basic schema validation

  • Real Documentation Integration: Connect to actual filesystem and web search MCPs

  • Extended API Coverage: Add more DHIS2 Web API endpoints

  • Interactive Debugging: Real-time problem diagnosis and fixes

  • Template Library: Pre-built project templates for common use cases

🤝 Contributing

This is a development tool that generates code and configurations. Contributions welcome for:

  1. New Code Generators - Additional UI patterns, project templates

  2. Enhanced Debugging - More diagnostic tools and solutions

  3. API Coverage - Additional DHIS2 endpoints and operations

  4. Documentation - Better examples and usage guides

  5. Testing - Expanded test coverage and validation

# Development setup
git clone https://github.com/yourusername/dhis2-mcp.git
cd dhis2-mcp
npm install
npm run dev      # Watch mode
npm run test     # Run tests
npm run lint     # Code quality

⚠️ Important Notes

This is NOT:

  • A complete DHIS2 Web API replacement

  • A production-ready backend service

  • A fully-tested enterprise solution

  • A replacement for official DHIS2 tools

This IS:

  • A development assistant and code generator

  • A learning tool for DHIS2 development patterns

  • A debugging helper for common development issues

  • A starting point for DHIS2 app development

📄 License

MIT License - see LICENSE file for details.

🙏 Acknowledgments

  • DHIS2 Community - For the platform and development patterns

  • Model Context Protocol - For the AI-human collaboration framework

  • TypeScript & Node.js - For the solid foundation

  • Open Source Community - For tools and libraries used


Made with ❤️ as a development assistant for the DHIS2 community

This tool is designed to help developers get started with DHIS2 development by generating code, configurations, and providing debugging assistance. It's not a replacement for official DHIS2 documentation or tools, but rather a helpful companion for development workflows.

Available Tools

47 tools
android_generate_bottom_sheetC

Generate Android bottom sheet component (Compose)

ParametersJSON Schema
NameRequiredDescriptionDefault
componentNameNoComposable name
persistentNoGenerate persistent bottom sheet alternative

TDQS

C2.9/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 states 'Generate' which implies a write/creation operation, but doesn't specify what exactly gets generated (e.g., code files, configuration), where the output goes, whether it modifies existing files, or what permissions might be required. For a generation tool with zero annotation coverage, this represents a significant transparency 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?

The description is extremely concise - a single phrase that communicates the core purpose without any wasted words. It's front-loaded with the essential information (generate + what). This represents optimal conciseness for a simple tool description.

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 code generation tool with no annotations and no output schema, the description is insufficiently complete. It doesn't explain what format the generation produces (Kotlin file, XML, etc.), where the output is placed, whether it integrates with existing project structures, or what happens on success/failure. The agent would need to guess about important behavioral aspects of this generation operation.

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 both parameters (componentName, persistent) are already documented in the schema. The description doesn't add any additional meaning about these parameters beyond what the schema provides - it doesn't explain naming conventions for componentName or clarify what 'persistent' means in practical terms. This meets the baseline expectation when schema does the heavy lifting.

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 states the action ('Generate') and target resource ('Android bottom sheet component (Compose)'), making the purpose immediately understandable. However, it doesn't explicitly differentiate this tool from its sibling Android generation tools (like android_generate_list_adapter or android_generate_navigation_drawer), which would require mentioning what makes a bottom sheet distinct from other UI components.

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 guidance on when to use this tool versus alternatives. There are no mentions of prerequisites (e.g., needing an Android project context), typical use cases for bottom sheets, or comparisons to other UI component generation tools in the sibling list. This leaves the agent without contextual usage information.

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

android_generate_list_adapterC

Generate Android RecyclerView adapter and layout for DHIS2-style lists

ParametersJSON Schema
NameRequiredDescriptionDefault
adapterNameNoAdapter class name
itemLayoutNoViewBinding layout base name (e.g., item_data_element)
shimmerNoInclude shimmer placeholder pattern
pullToRefreshNoInclude pull-to-refresh pattern
stickyHeadersNoInclude sticky headers in list

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but offers minimal behavioral insight. It mentions what is generated but doesn't disclose critical traits like whether this creates files, modifies existing code, requires specific project setup, has side effects, or what the output format is. For a code generation tool with zero annotation coverage, this is inadequate.

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, efficient sentence that front-loads the core purpose without unnecessary words. Every element ('Generate', 'Android RecyclerView adapter and layout', 'DHIS2-style lists') contributes directly to understanding the tool's function.

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 the complexity of a code generation tool with 5 parameters and no annotations or output schema, the description is insufficient. It lacks details on behavioral aspects, output format, dependencies, or integration context, leaving significant gaps for an AI agent to understand how to use it effectively.

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%, providing clear documentation for all 5 parameters. The description adds no additional parameter semantics beyond implying the tool generates Android components, which is already evident from the tool name and schema. This meets the baseline for high schema coverage.

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 states the action ('Generate') and target resources ('Android RecyclerView adapter and layout'), specifying the style ('DHIS2-style lists'). It distinguishes from most siblings by focusing on list UI components, though it doesn't explicitly differentiate from similar UI generation tools like 'dhis2_generate_ui_data_display' or 'dhis2_create_ui_components'.

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 on when to use this tool versus alternatives. The description doesn't mention prerequisites, appropriate contexts, or comparisons with sibling tools like 'android_generate_material_form' or 'dhis2_generate_ui_data_display', leaving usage entirely implicit.

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

android_generate_material_formC

Generate Android Jetpack Compose form patterns (Material Design)

ParametersJSON Schema
NameRequiredDescriptionDefault
screenNameNoComposable name
includeValidationNo
includeDatePickerNo
includeMultiSelectNo
dynamicColorNoUse Material 3 dynamic color
lightDarkNoInclude light/dark theme setup
rtlNoAdd RTL considerations
snackbarNoInclude snackbar feedback example

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure but offers minimal information. It states what the tool generates but doesn't describe output format (e.g., code snippets, configuration files), side effects, permissions needed, or error handling. For a generation tool with 8 parameters, this leaves significant behavioral aspects unexplained.

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, focused sentence with zero wasted words. It front-loads the core purpose ('Generate Android Jetpack Compose form patterns') and efficiently specifies the design system ('Material Design'). Every element earns its place without redundancy.

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 the tool's complexity (8 parameters, no annotations, no output schema), the description is insufficient. It doesn't explain what the output looks like (critical for a code generation tool), doesn't provide usage context, and offers minimal behavioral transparency. The description alone leaves too many open questions for effective tool selection and 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 63% (5 of 8 parameters have descriptions), providing decent baseline documentation. The description adds no parameter-specific information beyond the tool's general purpose, so it doesn't compensate for the 37% gap. However, since most parameters are self-explanatory booleans (e.g., includeValidation, includeDatePicker), the baseline 3 is appropriate.

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 states the action ('Generate') and target ('Android Jetpack Compose form patterns (Material Design)'), making the purpose immediately understandable. It distinguishes from most siblings by focusing on form generation rather than navigation, UI components, or configuration tasks. However, it doesn't explicitly differentiate from 'dhis2_generate_ui_form_patterns' which might have overlapping domain.

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. The description doesn't mention prerequisites, appropriate contexts, or comparison with sibling tools like 'dhis2_generate_ui_form_patterns' or 'android_generate_navigation_drawer'. The agent must infer usage purely from the tool name and description.

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

android_generate_navigation_drawerC

Generate Android navigation drawer pattern (Compose)

ParametersJSON Schema
NameRequiredDescriptionDefault
componentNameNoComposable name
navComposeNoInclude Navigation Compose sample
dynamicColorNoUse Material 3 dynamic color in scaffold

TDQS

C2.9/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 states the tool 'generates' something, implying a creation/write operation, but doesn't specify what exactly is generated (e.g., code files, configuration), where output goes, or any side effects. No information about permissions, rate limits, or error handling is included, leaving significant gaps for a 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 extremely concise with a single, front-loaded sentence: 'Generate Android navigation drawer pattern (Compose)'. Every word contributes essential information without waste. It efficiently communicates the core purpose in minimal space.

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 the tool's purpose (generating code/patterns), no annotations, no output schema, and 3 parameters, the description is incomplete. It doesn't explain what the tool produces (e.g., code snippets, files, configurations), how output is delivered, or any behavioral aspects. For a generation tool with zero annotation coverage, this minimal description leaves too many questions unanswered.

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 three parameters with clear descriptions. The description adds no additional parameter semantics beyond what's in the schema. According to guidelines, when schema coverage is high (>80%), the baseline score is 3 even with no param info in the description.

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 states the tool's purpose: 'Generate Android navigation drawer pattern (Compose)'. It specifies the verb ('Generate'), resource ('Android navigation drawer pattern'), and technology context ('Compose'), making it distinct from most siblings that focus on DHIS2 configuration or other Android patterns. However, it doesn't explicitly differentiate from 'android_generate_bottom_sheet' or 'android_generate_list_adapter' which are also Android generation tools.

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 guidance on when to use this tool versus alternatives. It doesn't mention any prerequisites, context for Android development, or comparisons to sibling tools like 'android_generate_bottom_sheet' or 'dhis2_generate_ui_navigation_layout'. The agent must infer usage from the tool name and description alone.

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

dhis2_android_configure_cameraC

Set up camera and media capture capabilities for DHIS2 Android app

ParametersJSON Schema
NameRequiredDescriptionDefault
cameraFeaturesYesCamera features to enable
imageSettingsNo
videoSettingsNo
barcodeTypesNoSupported barcode formats
permissionsNoRequired permissions for media capture

TDQS

C2.9/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 states the tool 'Set[s] up' capabilities, implying a configuration or write operation, but does not detail side effects, permissions required beyond the schema, error conditions, or what success looks like. This is inadequate for a tool with multiple parameters and no output schema.

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

Conciseness5/5

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

The description is a single, direct sentence that efficiently conveys the core function without unnecessary words. It is front-loaded and avoids redundancy, making it easy to parse quickly.

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 5 parameters, nested objects, no annotations, and no output schema, the description is insufficient. It lacks details on behavioral outcomes, error handling, and how parameters interact, leaving significant gaps in understanding for an AI agent tasked with correct 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?

The description does not add any parameter-specific information beyond the input schema, which has 60% coverage. It mentions 'camera and media capture capabilities' broadly, aligning with parameters like 'cameraFeatures' and 'videoSettings', but fails to explain relationships between parameters or provide usage examples. Given the moderate schema coverage, 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.

Purpose4/5

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

The description clearly states the action ('Set up') and target resource ('camera and media capture capabilities for DHIS2 Android app'), making the purpose evident. However, it does not explicitly differentiate from sibling tools like 'dhis2_android_configure_notifications' or 'dhis2_android_configure_storage', which reduces clarity in a crowded toolset.

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 guidance on when to use this tool versus alternatives, such as other configuration tools in the list. There is no mention of prerequisites, dependencies, or specific scenarios where this tool is appropriate, leaving the agent without contextual usage cues.

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

dhis2_android_configure_gradleB

Generate Gradle build configuration for DHIS2 Android SDK integration

ParametersJSON Schema
NameRequiredDescriptionDefault
dhis2SdkVersionYesDHIS2 Android SDK version
buildFeaturesNo
proguardRulesNoGenerate ProGuard rules for DHIS2 SDK
buildVariantsNoBuild variants for different DHIS2 environments
additionalLibrariesNoAdditional Android libraries to include

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It states the tool 'generates' configuration, implying a write operation, but doesn't specify whether this modifies existing files, creates new ones, or requires specific permissions. It also lacks details on output format, error handling, or any side effects. The description adds minimal behavioral context beyond the basic action.

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, efficient sentence that directly states the tool's purpose without unnecessary words. It's front-loaded with the core action and context, making it easy to parse. There's no redundancy or fluff, earning full marks for conciseness.

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 the tool's complexity (5 parameters with nested objects) and lack of annotations and output schema, the description is minimally adequate. It identifies the tool's domain but doesn't compensate for missing behavioral details or output information. For a configuration-generation tool with multiple parameters, more context on what the generated output looks like or how it should be used would be helpful.

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 description doesn't mention any parameters, but the input schema has 80% description coverage, providing clear documentation for most parameters. The schema covers key aspects like SDK version, build features, and build variants. However, the description doesn't add any semantic context beyond what's in the schema, such as explaining why certain parameters are important or how they interact.

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 states the tool's purpose: 'Generate Gradle build configuration for DHIS2 Android SDK integration'. It specifies the action (generate), resource (Gradle build configuration), and context (DHIS2 Android SDK integration). However, it doesn't explicitly differentiate from sibling tools like 'dhis2_configure_build_system' or 'dhis2_android_init_project', which may have overlapping functionality.

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 guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, appropriate contexts, or how it differs from related tools such as 'dhis2_android_init_project' (which might handle broader project setup) or 'dhis2_configure_build_system' (which could be more general). This leaves the agent without clear usage boundaries.

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

dhis2_android_configure_notificationsC

Set up push notifications and local notifications for DHIS2 Android app

ParametersJSON Schema
NameRequiredDescriptionDefault
notificationTypesYesTypes of notifications to implement
pushProviderNoPush notification provider
triggersNoNotification triggers
schedulingNo
customizationNo

TDQS

C2.9/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 mentions 'Set up,' implying a configuration or write operation, but fails to detail critical aspects like whether this is idempotent, requires specific permissions, impacts app behavior, or has side effects. This leaves significant gaps for a tool with multiple parameters and nested objects.

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, efficient sentence with no wasted words. It front-loads the core purpose ('Set up push notifications and local notifications') and specifies the context ('for DHIS2 Android app'), making it easy to parse quickly.

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 the complexity (5 parameters with nested objects, no output schema, and no annotations), the description is insufficient. It doesn't address behavioral traits, output expectations, or error handling, leaving the agent with incomplete guidance for a configuration tool that likely involves app changes.

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 60%, and the description adds no parameter-specific information beyond what the schema provides. It doesn't explain relationships between parameters (e.g., how 'pushProvider' relates to 'notificationTypes') or provide usage examples. The baseline is 3 since the schema covers most parameters adequately, but the description doesn't compensate for the 40% coverage gap.

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 states the action ('Set up') and target resources ('push notifications and local notifications for DHIS2 Android app'), making the purpose understandable. However, it doesn't differentiate from sibling tools like 'dhis2_android_configure_camera' or 'dhis2_android_configure_storage' beyond the notification focus, preventing a perfect score.

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 provided on when to use this tool versus alternatives. The description lacks context about prerequisites, dependencies, or scenarios where this configuration is needed, leaving the agent to infer usage from the tool name alone.

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

dhis2_android_configure_storageC

Set up local storage and database configuration for DHIS2 Android app

ParametersJSON Schema
NameRequiredDescriptionDefault
storageTypeYesLocal database technology
encryptionLevelNoDatabase encryption level
cacheStrategyNo
purgePolicyNo

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but only states it 'sets up' configuration without disclosing behavioral traits. It doesn't mention whether this is a one-time setup, if it modifies existing configurations, requires specific permissions, has side effects, or how changes persist. This is inadequate for a configuration tool with multiple parameters.

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, efficient sentence that directly states the tool's purpose without unnecessary words. It's appropriately sized and front-loaded, making it easy to parse quickly.

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 the complexity (4 parameters with nested objects, 50% schema coverage, no annotations, no output schema), the description is insufficient. It lacks details on behavior, parameter usage, expected outcomes, or integration with other tools, making it incomplete for effective agent use.

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 50%, and the description adds no parameter-specific information beyond implying storage/database configuration. It doesn't explain the meaning or relationships of parameters like 'storageType', 'encryptionLevel', or nested objects, leaving gaps. However, the schema provides some enum descriptions, maintaining a baseline score.

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 states the action ('Set up') and target ('local storage and database configuration for DHIS2 Android app'), making the purpose understandable. However, it doesn't explicitly differentiate from sibling tools like 'dhis2_android_configure_camera' or 'dhis2_android_configure_notifications' beyond the storage/database focus, which prevents a perfect score.

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 on when to use this tool versus alternatives. The description doesn't mention prerequisites, timing (e.g., during app initialization), or relationships with siblings like 'dhis2_android_init_project' or 'dhis2_android_setup_sync', leaving the agent without context for tool selection.

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

dhis2_android_configure_ui_patternsC

Generate Android UI patterns and components for DHIS2 apps

ParametersJSON Schema
NameRequiredDescriptionDefault
uiFrameworkYesUI framework to use
componentsYesUI components to generate
designSystemNo
accessibilityNo
localizationNo

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. 'Generate' implies a creation/write operation, but the description doesn't specify what exactly gets generated (code files? configuration? documentation?), whether this requires specific permissions, what the output format is, or any side effects. For a tool with 5 parameters and complex nested objects, this is inadequate behavioral context.

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, efficient sentence that gets straight to the point with zero wasted words. It's appropriately sized for a tool name that already conveys the domain (DHIS2 Android) and action (configure).

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 complex tool with 5 parameters (including nested objects), no annotations, no output schema, and only 40% schema description coverage, the description is insufficient. It doesn't explain what 'generate' means in practical terms, what the output looks like, how the various configuration options interact, or provide any context about the DHIS2 Android ecosystem that would help an agent use this tool effectively.

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 40%, meaning most parameters lack documentation in the schema. The description doesn't compensate by explaining any parameters or their relationships. It mentions 'UI patterns and components' which vaguely relates to the 'components' parameter, but provides no additional context about the other 4 parameters (uiFramework, designSystem, accessibility, localization) or how they interact.

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 states the action ('Generate') and target ('Android UI patterns and components for DHIS2 apps'), providing a specific verb+resource combination. However, it doesn't explicitly differentiate from sibling tools like 'dhis2_generate_ui_form_patterns' or 'dhis2_generate_ui_navigation_layout', which appear to be more specialized versions of similar functionality.

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 guidance on when to use this tool versus alternatives. With multiple sibling tools that appear to generate specific UI components (e.g., 'android_generate_bottom_sheet', 'android_generate_list_adapter'), there's no indication whether this is a comprehensive tool versus those specialized ones, or what context would warrant choosing this broader configuration tool.

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

dhis2_android_generate_data_modelsC

Generate Android data model classes and repositories for DHIS2 entities

ParametersJSON Schema
NameRequiredDescriptionDefault
entitiesYesDHIS2 entities to generate models for
architectureYesArchitecture pattern for data layer
dataBindingNoDatabase binding approach
validationNo
serializationNoJSON serialization library

TDQS

C2.9/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 states what the tool does but doesn't cover critical traits such as whether it modifies existing files, requires specific permissions, outputs file locations, or handles errors. For a code generation tool with multiple parameters, this leaves significant gaps in understanding its behavior.

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, efficient sentence that directly states the tool's purpose without any unnecessary words. It's front-loaded and wastes no space, making it highly concise and well-structured for quick understanding.

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 the complexity (5 parameters, nested objects, no output schema, and no annotations), the description is incomplete. It doesn't explain what the output looks like (e.g., generated files, structure), how to handle the generated code, or any prerequisites. For a tool that likely produces significant code artifacts, this lack of context is a notable gap.

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 description coverage is 80%, providing good documentation for parameters like 'entities' and 'architecture'. The description adds no additional parameter semantics beyond what's in the schema, but since the schema coverage is high, the baseline score of 3 is appropriate as the schema handles most of the heavy lifting.

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 states the action ('Generate') and target resources ('Android data model classes and repositories for DHIS2 entities'), making the purpose evident. However, it doesn't explicitly differentiate from sibling tools like 'dhis2_generate_ui_data_display' or 'dhis2_generate_test_setup', which also involve generation but for different components, so it misses full sibling distinction.

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 on when to use this tool versus alternatives. For example, it doesn't mention if this is for initial project setup, adding new features, or how it relates to siblings like 'dhis2_android_init_project' or 'dhis2_generate_app_runtime_config'. The description lacks context for decision-making.

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

dhis2_android_init_projectC

Initialize a new Android project with DHIS2 SDK integration

ParametersJSON Schema
NameRequiredDescriptionDefault
projectNameYesAndroid project name (e.g., "dhis2-health-tracker")
applicationIdYesAndroid application ID (e.g., "org.dhis2.healthtracker")
minSdkVersionNoMinimum Android SDK version (default: 21)
targetSdkVersionNoTarget Android SDK version (default: 34)
languageYesProgramming language for Android app
dhis2SdkVersionNoDHIS2 Android SDK version (e.g., "1.10.0")
featuresNoFeatures to include in the project setup
architectureNoAndroid architecture pattern to implement

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. While 'Initialize' implies a creation/setup operation, the description doesn't specify whether this tool creates files, modifies existing projects, requires specific permissions, has side effects, or what the expected outcome looks like. For a tool with 8 parameters and no annotation coverage, this represents a significant transparency 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?

The description is a single, efficient sentence that clearly states the tool's purpose without unnecessary words. It's appropriately sized and front-loaded with the essential information, making it easy for an agent to quickly understand what the tool does.

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 8 parameters, no annotations, and no output schema, the description is insufficiently complete. It doesn't explain what the tool actually produces (project structure, files created), what happens if the project already exists, or any behavioral constraints. The combination of complex parameters and lack of structured metadata requires more descriptive context than provided.

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 has 100% description coverage, providing detailed documentation for all 8 parameters including enums and defaults. The description adds no additional parameter information beyond what's already in the schema, so it meets the baseline score of 3 where the schema does the heavy lifting.

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 states the action ('Initialize') and target ('new Android project with DHIS2 SDK integration'), providing a specific verb+resource combination. However, it doesn't explicitly differentiate from sibling tools like 'dhis2_init_webapp' or 'dhis2_setup_dev_environment', which prevents a perfect score.

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 guidance on when to use this tool versus alternatives. There are no prerequisites mentioned, no indication of when this initialization should occur in the development workflow, and no comparison to sibling tools like 'dhis2_configure_gradle' or 'dhis2_setup_dev_environment' that might handle related setup tasks.

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

dhis2_android_performance_optimizationC

Generate performance optimization patterns and monitoring for DHIS2 Android app

ParametersJSON Schema
NameRequiredDescriptionDefault
optimizationAreasYesAreas to optimize
monitoringNo
batterOptimizationNo
memoryManagementNo

TDQS

C2.8/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 states the tool 'generates' patterns and monitoring, implying a read-only or advisory function, but doesn't clarify if this involves creating files, modifying code, or providing recommendations. Critical behavioral traits like side effects, permissions needed, or output format are missing, leaving significant gaps for a tool with complex nested parameters.

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 extremely concise with a single sentence: 'Generate performance optimization patterns and monitoring for DHIS2 Android app.' It's front-loaded and wastes no words, making it easy to parse quickly. Every part of the sentence contributes directly to the tool's purpose.

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 the tool's complexity (4 parameters with nested objects, low schema coverage of 25%, no annotations, and no output schema), the description is inadequate. It doesn't explain the tool's behavior, parameter meanings, or expected outcomes. For a tool that likely generates code or configurations for performance optimization, more context is needed to guide effective use, especially without structured support from annotations or output schema.

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 low at 25%, meaning most parameters lack descriptions in the schema. The tool description doesn't compensate by explaining what the four parameters (optimizationAreas, monitoring, batterOptimization, memoryManagement) mean or how they interact. For example, it doesn't clarify if 'batterOptimization' is a typo for 'batteryOptimization' or how these areas relate to the overall optimization process, leaving parameters largely unexplained.

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 states the tool's purpose: 'Generate performance optimization patterns and monitoring for DHIS2 Android app.' It specifies the verb ('generate') and resource ('performance optimization patterns and monitoring'), making it easy to understand what the tool does. However, it doesn't explicitly differentiate from sibling tools like 'dhis2_optimize_performance' or other Android-specific tools, which prevents a perfect score.

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 guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, ideal scenarios, or comparisons with sibling tools such as 'dhis2_optimize_performance' or other Android configuration tools. This lack of context makes it challenging for an agent to decide when this tool is appropriate.

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

dhis2_android_setup_authenticationC

Configure authentication and security patterns for DHIS2 Android app

ParametersJSON Schema
NameRequiredDescriptionDefault
authMethodsYesAuthentication methods to support
biometricSettingsNo
sessionManagementNo
securityFeaturesNo

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden for behavioral disclosure. 'Configure' implies a write/mutation operation, but the description doesn't specify whether this is a one-time setup, requires admin permissions, has side effects, or what happens on success/failure. For a security configuration tool with zero annotation coverage, this is a significant gap in behavioral transparency.

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, efficient sentence that directly states the tool's purpose without unnecessary words. It's appropriately sized and front-loaded with the core functionality.

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 security configuration tool with 4 parameters (including nested objects), no annotations, and no output schema, the description is inadequate. It doesn't explain what the tool returns, error conditions, or the implications of configuring these security settings. The complexity of the input schema demands more contextual information than provided.

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 only 25%, meaning most parameters lack documentation in the schema. The description mentions 'authentication and security patterns' which hints at the scope of parameters, but doesn't provide specific details about what each parameter controls or how they interact. It adds minimal value beyond the low-coverage 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?

The description clearly states the verb ('configure') and resource ('authentication and security patterns for DHIS2 Android app'), making the purpose understandable. However, it doesn't explicitly differentiate from sibling tools like 'dhis2_setup_authentication_patterns' or 'dhis2_debug_authentication', which could cause confusion about when to use this specific tool versus those alternatives.

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 guidance on when to use this tool versus alternatives, prerequisites, or typical scenarios. With multiple authentication-related tools in the sibling list (e.g., 'dhis2_setup_authentication_patterns', 'dhis2_debug_authentication'), the lack of differentiation leaves the agent without clear usage context.

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

dhis2_android_setup_location_servicesC

Configure GPS and location services for DHIS2 Android app

ParametersJSON Schema
NameRequiredDescriptionDefault
locationAccuracyYesLocation accuracy requirements
permissionsNo
geofencingNo
coordinateCaptureNo
offlineMappingNoInclude offline map support

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. While 'configure' implies a write operation, it doesn't specify whether this requires specific permissions, whether changes are reversible, what happens to existing settings, or any rate limits. The description lacks crucial behavioral context for a configuration 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, efficient sentence that directly states the tool's purpose without unnecessary words. It's appropriately sized and front-loaded with the essential information, making it easy to understand at a glance.

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 configuration tool with 5 parameters (including nested objects), no annotations, no output schema, and only 40% schema description coverage, the description is insufficient. It doesn't address what the tool returns, error conditions, or the scope of configuration changes, leaving significant gaps for an agent to understand the tool's full behavior.

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?

The schema description coverage is only 40%, meaning most parameters lack documentation in the schema. The description provides no additional parameter information beyond the tool name's implication of location services. It doesn't explain what the five parameters control, their relationships, or practical usage examples 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.

Purpose4/5

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

The description clearly states the action ('configure') and target ('GPS and location services for DHIS2 Android app'), providing a specific verb+resource combination. However, it doesn't explicitly differentiate from sibling tools like 'dhis2_android_configure_camera' or 'dhis2_android_configure_notifications', which also configure specific Android app features.

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 guidance on when to use this tool versus alternatives. There are no mentions of prerequisites, timing considerations, or comparisons to sibling tools that handle related configurations like 'dhis2_android_configure_notifications' or 'dhis2_android_setup_sync'.

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

dhis2_android_setup_offline_analyticsC

Configure offline analytics and reporting capabilities for DHIS2 Android app

ParametersJSON Schema
NameRequiredDescriptionDefault
analyticsFeaturesYesAnalytics features to include
chartTypesNoChart types to support
dataAggregationNo
cachingNo
exportNo

TDQS

C2.8/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 states 'configure' but doesn't clarify if this is a one-time setup, requires specific permissions, modifies app files, has side effects, or what happens on success/failure. For a configuration tool with complex parameters, this lack of behavioral context is a significant 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?

The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's front-loaded with the core action and target, making it easy to parse quickly.

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 the tool's complexity (5 parameters with nested objects, no output schema, and no annotations), the description is inadequate. It doesn't explain the scope of configuration, expected outcomes, or how it integrates with other DHIS2 Android setup tools. For a tool with rich input schema but poor documentation, more context is needed to guide effective use.

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 40%, meaning most parameters lack schema descriptions. The tool description doesn't add any parameter-specific information beyond the generic 'offline analytics and reporting capabilities', failing to explain what each parameter controls or how they interact. This leaves key parameters like 'dataAggregation' and 'caching' without semantic context.

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 states the action ('configure') and target ('offline analytics and reporting capabilities for DHIS2 Android app'), making the purpose understandable. However, it doesn't explicitly differentiate this from sibling tools like 'dhis2_android_setup_sync' or 'dhis2_android_configure_notifications', which might also involve configuration aspects.

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 guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, timing (e.g., during app setup vs. post-deployment), or how it relates to sibling tools like 'dhis2_android_setup_sync' for data synchronization, leaving the agent to infer usage context.

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

dhis2_android_setup_syncC

Configure offline-first data synchronization patterns for DHIS2 Android app

ParametersJSON Schema
NameRequiredDescriptionDefault
syncStrategyYesData synchronization strategy
syncScopeNo
conflictResolutionNoStrategy for resolving sync conflicts
networkConditionsNo
progressTrackingNoInclude sync progress tracking UI

TDQS

C2.9/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 mentions 'offline-first data synchronization patterns' but does not specify critical behaviors like whether this is a read-only or mutative operation, potential side effects, authentication requirements, or error handling. This leaves significant gaps in understanding the tool's behavior.

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, efficient sentence that directly states the tool's purpose without unnecessary words. It is appropriately sized and front-loaded, making it easy to parse quickly.

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 the complexity (5 parameters with nested objects, no output schema, and no annotations), the description is inadequate. It does not explain return values, error conditions, or the broader context of how synchronization integrates with the DHIS2 Android ecosystem, leaving the agent with insufficient information for effective use.

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 description does not add any parameter-specific information beyond what the input schema provides. With a schema description coverage of 60%, the baseline is 3, as the schema handles most documentation, but the description fails to compensate for the 40% coverage gap or clarify high-level parameter roles.

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 states the action ('Configure') and target ('offline-first data synchronization patterns for DHIS2 Android app'), providing a specific verb and resource. However, it does not explicitly differentiate from sibling tools like 'dhis2_android_setup_authentication' or 'dhis2_android_setup_location_services', which limits its score to 4 rather than 5.

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 offers no guidance on when to use this tool versus alternatives, such as other setup tools in the sibling list. It lacks explicit context, prerequisites, or exclusions, leaving the agent to infer usage based on the tool name alone.

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

dhis2_android_setup_testingC

Configure testing framework and generate test patterns for DHIS2 Android app

ParametersJSON Schema
NameRequiredDescriptionDefault
testingFrameworksYesTesting frameworks to include
testTypesYesTypes of tests to generate
mockStrategiesNo
coverageNo

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It mentions 'configure' and 'generate', implying creation/modification, but doesn't disclose behavioral traits such as whether this tool overwrites existing files, requires specific permissions, has side effects on the project structure, or handles errors. For a setup tool with no annotation coverage, this is a significant 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?

The description is a single, efficient sentence that front-loads the core actions ('configure testing framework', 'generate test patterns') with no wasted words. It's appropriately sized for the tool's complexity.

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 the tool's complexity (4 parameters, nested objects, no annotations, no output schema), the description is incomplete. It doesn't explain what the tool outputs (e.g., generated files, configuration changes), behavioral constraints, or error handling. For a setup tool with significant parameters, more context is needed to guide effective use.

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 50%, with parameters like 'testingFrameworks' and 'testTypes' well-described in the schema, but 'mockStrategies' and 'coverage' having nested objects with partial descriptions. The description adds no parameter-specific information beyond what's in the schema, so it doesn't compensate for the coverage gap. Baseline 3 is appropriate as the schema provides some documentation.

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 states the tool's purpose with specific verbs ('configure', 'generate') and resources ('testing framework', 'test patterns'), and identifies the target ('DHIS2 Android app'). It distinguishes from siblings like 'dhis2_generate_test_setup' by focusing on Android-specific testing, but doesn't explicitly differentiate from other Android setup tools like 'dhis2_android_setup_authentication'.

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 guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., whether the project must be initialized), timing in development workflow, or comparisons to sibling tools like 'dhis2_generate_test_setup' or 'dhis2_android_init_project'. Usage is implied but not explicitly stated.

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

dhis2_clear_audit_logB

Clear the audit log (requires confirmation)

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmedNoSet to true to confirm clearing the audit log

TDQS

B3.4/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden. It mentions 'requires confirmation' which hints at a safety mechanism, but doesn't disclose critical behavioral traits: whether this is destructive (likely yes, given 'clear'), irreversible, requires specific permissions, or has side effects. The description is insufficient for a mutation tool with zero annotation coverage.

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, efficient sentence with zero waste. It's front-loaded with the core action and includes essential context ('requires confirmation') without unnecessary elaboration.

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 destructive mutation tool with no annotations and no output schema, the description is incomplete. It lacks information about what 'clear' entails (e.g., permanent deletion, truncation), potential impacts, error conditions, or return values. The confirmation requirement is helpful but insufficient for full context.

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 fully documents the single parameter 'confirmed'. The description adds no additional parameter semantics beyond implying confirmation is needed, which aligns with the schema. Baseline 3 is appropriate when schema does the heavy lifting.

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 states the action ('Clear') and resource ('audit log'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'dhis2_export_audit_log' or 'dhis2_get_audit_log' beyond the verb, missing explicit sibling distinction.

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 provides clear context with 'requires confirmation', indicating a prerequisite for use. It doesn't explicitly mention when not to use or name alternatives like export or get audit log tools, but the confirmation requirement offers practical guidance.

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

dhis2_configure_app_manifestC

Generate or update manifest.webapp file for DHIS2 app

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesApp name
versionYesApp version (e.g., "1.0.0")
descriptionYesApp description
developerYes
iconsNo
activitiesYes
authoritiesNoRequired DHIS2 authorities/permissions
appTypeNoType of DHIS2 application
launch_pathNoLaunch path for the app

TDQS

C2.9/5.0
Behavior2/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. It mentions 'Generate or update' but does not specify if this is a read-only or destructive operation, what permissions are needed, or how errors are handled. For a tool that likely modifies files, this lack of detail is a significant gap in transparency.

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, efficient sentence that directly states the tool's function without unnecessary words. It is appropriately sized and front-loaded, making it easy to understand at a glance.

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 the complexity (9 parameters, nested objects) and lack of annotations or output schema, the description is insufficient. It does not explain what the tool returns, how it handles missing parameters, or the implications of generating vs. updating a manifest file, leaving critical gaps for an agent to use it effectively.

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 description does not add any parameter-specific information beyond what the input schema provides. With a schema description coverage of 67%, the baseline is 3, as the schema handles most documentation, but the description fails to compensate for the 33% gap or clarify the purpose of parameters like 'authorities' or 'appType'.

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 states the action ('Generate or update') and the target resource ('manifest.webapp file for DHIS2 app'), making the purpose specific and understandable. However, it does not differentiate from sibling tools like 'dhis2_init_webapp' or 'dhis2_generate_app_runtime_config', which might have overlapping or related functions, so it lacks explicit sibling distinction.

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 guidance on when to use this tool versus alternatives, such as whether it's for initial setup, updates, or specific app types. With many sibling tools in the DHIS2 context, this omission leaves the agent without clear usage context or exclusions.

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

dhis2_configure_build_systemC

Set up build system configuration for DHIS2 app (d2.config.js, webpack, etc.)

ParametersJSON Schema
NameRequiredDescriptionDefault
appNameYesName of the application
entryPointsNo
customAuthoritiesNoCustom authorities required by the app
pwaNo
publicPathNoPublic path for assets (for CDN deployment)
proxyNo

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It states 'Set up' which implies a write/mutation operation, but doesn't disclose behavioral traits like whether it overwrites existing configs, requires specific permissions, has side effects, or returns any output. For a configuration tool with 6 parameters, this is a significant 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?

Single sentence, front-loaded with the core action and resource, with illustrative examples in parentheses. Zero wasted words, efficiently conveys the essence without redundancy.

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 configuration tool with 6 parameters, 50% schema coverage, no annotations, and no output schema, the description is inadequate. It doesn't explain what 'Set up' entails operationally, what happens on execution, or how parameters interact. The context demands more detail about behavior and outcomes.

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 50%, so the description must compensate but only mentions general configuration areas without detailing specific parameters. It lists examples (d2.config.js, webpack) which loosely map to some schema properties, but doesn't explain parameter meanings, relationships, or usage beyond what the schema provides. Baseline 3 is appropriate given partial schema coverage.

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 states the action ('Set up') and target resource ('build system configuration for DHIS2 app'), with specific examples (d2.config.js, webpack). It distinguishes from most siblings focused on Android or other domains, though not from dhis2_configure_app_manifest or dhis2_init_webapp which are related but not identical.

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 on when to use this tool versus alternatives like dhis2_configure_app_manifest or dhis2_init_webapp. The description implies it's for initial configuration but doesn't specify prerequisites, timing, or exclusions. Usage is implied by the action but not clearly defined.

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

dhis2_configure_cors_allowlistB

Generate instructions and configuration for DHIS2 CORS allowlist setup

ParametersJSON Schema
NameRequiredDescriptionDefault
allowedOriginsYesURLs to add to CORS allowlist (e.g., ["http://localhost:3000", "https://myapp.example.com"])
dhis2VersionNoDHIS2 version (e.g., "2.40.4")
includeStepsNoInclude step-by-step configuration instructions

TDQS

B3.1/5.0
Behavior2/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. It states the tool generates instructions and configuration, implying a read-only or advisory role, but doesn't clarify if it modifies files, requires specific permissions, or has side effects like overwriting existing settings. For a configuration tool with zero annotation coverage, this leaves significant gaps in understanding its operational behavior.

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, clear sentence: 'Generate instructions and configuration for DHIS2 CORS allowlist setup.' It is front-loaded with the core purpose, has zero redundant words, and efficiently communicates the tool's function without unnecessary elaboration. Every word earns its place.

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 the tool's complexity (configuration generation for a specific system), the description is minimally adequate. It lacks output schema, so return values aren't documented, and with no annotations, behavioral traits like safety or permissions are unspecified. The 100% schema coverage helps, but for a tool that likely involves system changes, more context on what 'generate' entails (e.g., file creation, CLI commands) would improve completeness.

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 description adds no parameter-specific information beyond what the input schema provides. With 100% schema description coverage, the schema already documents all three parameters (allowedOrigins, dhis2Version, includeSteps) with examples and purposes. The baseline score of 3 is appropriate as the schema does the heavy lifting, and the description doesn't compensate with additional context like format details or usage tips.

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 states the tool's purpose: 'Generate instructions and configuration for DHIS2 CORS allowlist setup.' It specifies the action ('generate instructions and configuration'), the resource ('DHIS2 CORS allowlist setup'), and the domain (DHIS2). However, it doesn't explicitly differentiate from sibling tools like 'dhis2_diagnose_cors_issues' or 'dhis2_fix_proxy_configuration', which might have overlapping concerns with CORS.

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 guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, such as needing access to DHIS2 configuration files or administrative permissions, nor does it contrast with related tools like 'dhis2_diagnose_cors_issues' for troubleshooting. Usage is implied by the purpose but lacks explicit context or exclusions.

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

dhis2_create_ui_componentsC

Generate common UI components using DHIS2 UI library patterns

ParametersJSON Schema
NameRequiredDescriptionDefault
componentTypeYesType of component to generate
componentNameYesName of the component
featuresNo
dataIntegrationNo
stylingNo

TDQS

C2.8/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 states what the tool does but doesn't describe how it behaves: Is this a code generation tool? Does it create files or return code snippets? What permissions or environment setup are required? Are there rate limits or side effects? The description lacks these critical behavioral details for a tool with complex parameters.

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, efficient sentence that gets straight to the point with zero wasted words. It's appropriately sized for a tool name that already conveys the domain (DHIS2) and action (create UI components). Every word earns its place by specifying the technology context and purpose.

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 5 parameters (including complex nested objects), no annotations, no output schema, and only 40% schema description coverage, the description is insufficient. It doesn't explain what the tool returns (code? configuration files?), how parameters interact, or what 'using DHIS2 UI library patterns' entails. The agent lacks critical context to use this tool effectively.

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?

The description mentions 'common UI components' but doesn't explain what parameters like 'features', 'dataIntegration', or 'styling' actually do or how they affect the output. With schema description coverage at only 40% (many parameters lack descriptions in the schema), the description fails to compensate by providing semantic context about these complex nested objects. The agent must guess at 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 clearly states the tool's purpose: 'Generate common UI components using DHIS2 UI library patterns.' It specifies the verb ('generate'), resource ('UI components'), and technology context ('DHIS2 UI library patterns'). However, it doesn't explicitly differentiate from sibling tools like 'dhis2_generate_ui_data_display' or 'dhis2_generate_ui_form_patterns', which appear to be more specialized UI generation tools.

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 guidance on when to use this tool versus alternatives. With many sibling tools focused on UI generation (e.g., 'dhis2_generate_ui_data_display', 'dhis2_generate_ui_form_patterns'), there's no indication of scope boundaries, prerequisites, or typical use cases. The agent must infer usage from the tool name and parameters alone.

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

dhis2_debug_authenticationC

Debug authentication issues including login failures, session management, and cookie problems

ParametersJSON Schema
NameRequiredDescriptionDefault
issueTypeYesType of authentication issue
dhis2InstanceYesDHIS2 instance URL
authMethodYesAuthentication method being used
errorDetailsNo
browserSettingsNo

TDQS

C2.9/5.0
Behavior2/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. It states the tool is for 'debugging' but doesn't elaborate on what that entails—e.g., whether it performs read-only diagnostics, modifies configurations, requires specific permissions, or has side effects like logging or alerts. The description lacks details on output format, error handling, or operational constraints, which are critical for a debugging tool with complex parameters.

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, efficient sentence that front-loads the core purpose without unnecessary words. It directly states what the tool does ('Debug authentication issues') and includes key examples, making it easy to parse. Every part of the sentence earns its place by clarifying the scope, resulting in an appropriately sized and well-structured description.

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 the tool's complexity (5 parameters with nested objects, no output schema, and no annotations), the description is incomplete. It doesn't address behavioral aspects like what the tool returns, how it handles errors, or any side effects. For a debugging tool with multiple input parameters, more context is needed to guide effective usage, especially since sibling tools suggest this is part of a larger DHIS2 ecosystem with overlapping authentication functions.

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 description mentions 'authentication issues including login failures, session management, and cookie problems,' which loosely maps to the 'issueType' parameter but doesn't add significant meaning beyond the schema's 60% coverage. It doesn't explain the purpose of other parameters like 'dhis2Instance' or 'browserSettings,' nor does it clarify how parameters interact. With moderate schema coverage, the description provides minimal additional context, meeting the baseline but not compensating for gaps.

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 states the tool's purpose: 'Debug authentication issues including login failures, session management, and cookie problems.' It specifies the verb ('debug') and resource ('authentication issues') with concrete examples. However, it doesn't explicitly differentiate from sibling tools like 'dhis2_setup_authentication_patterns' or 'dhis2_android_setup_authentication', which might handle similar authentication domains but with different scopes (setup vs. debugging).

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 guidance on when to use this tool versus alternatives. It mentions general authentication issues but doesn't specify prerequisites, exclusions, or direct comparisons to sibling tools. For instance, it doesn't clarify if this is for post-failure analysis versus proactive setup, leaving the agent to infer usage context without explicit direction.

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

dhis2_diagnose_cors_issuesB

Diagnose and provide solutions for CORS (Cross-Origin Resource Sharing) issues in DHIS2 app development

ParametersJSON Schema
NameRequiredDescriptionDefault
dhis2InstanceYesDHIS2 instance URL (e.g., https://play.dhis2.org/2.40.4)
localDevelopmentUrlYesLocal development URL (e.g., http://localhost:3000)
browserYesBrowser being used for development
errorMessageNoSpecific CORS error message received
symptomsNoSymptoms experienced

TDQS

B3.1/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 mentions 'diagnose and provide solutions,' implying analysis and recommendations, but doesn't specify whether it performs active testing, modifies configurations, requires specific permissions, or details the output format (e.g., step-by-step fixes, error explanations). This leaves significant gaps for a diagnostic 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, efficient sentence that front-loads the core purpose without unnecessary details. Every word earns its place by specifying the action ('diagnose and provide solutions'), problem ('CORS issues'), and context ('DHIS2 app development'), making it highly concise and well-structured.

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 the tool's complexity (diagnostic with 5 parameters), no annotations, and no output schema, the description is minimally adequate. It covers the purpose but lacks details on behavioral traits, usage context, and output expectations. For a diagnostic tool, more context on what the tool actually does (e.g., generates reports, suggests config changes) would improve completeness.

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 fully documents all 5 parameters (e.g., dhis2Instance, localDevelopmentUrl, browser, errorMessage, symptoms). The description doesn't add any parameter-specific context beyond what's in the schema, such as explaining how these inputs influence diagnosis or providing examples of common error messages. Baseline 3 is appropriate when the schema does the heavy lifting.

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 states the tool's purpose: 'Diagnose and provide solutions for CORS issues in DHIS2 app development.' It specifies the verb ('diagnose and provide solutions'), resource ('CORS issues'), and domain context ('DHIS2 app development'). However, it doesn't explicitly differentiate from sibling tools like 'dhis2_configure_cors_allowlist' or 'dhis2_fix_proxy_configuration', which prevents a perfect score.

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 guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., during development vs. production), compare it to sibling tools like 'dhis2_configure_cors_allowlist' for configuration or 'dhis2_fix_proxy_configuration' for proxy-related fixes, or specify scenarios where it's most appropriate (e.g., initial setup vs. debugging).

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

dhis2_export_audit_logB

Export complete audit log as JSON for compliance reporting

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It mentions 'Export' and 'JSON', implying data retrieval and formatting, but doesn't disclose behavioral traits such as whether this is a read-only operation, potential data size/performance impacts, authentication requirements, rate limits, or what 'complete' entails (e.g., all records vs. filtered). For an export tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.

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, efficient sentence that front-loads key information: action, resource, format, and purpose. Every word earns its place with no waste, making it easy to parse quickly. It's appropriately sized for a simple tool.

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 the tool's complexity (export operation with no parameters) and lack of annotations/output schema, the description is minimally adequate. It covers what the tool does but lacks details on behavioral aspects like data scope, performance, or output format beyond 'JSON'. For compliance reporting, more context on data completeness or limitations would be helpful, but it meets basic requirements.

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?

The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description doesn't add parameter details, which is appropriate. A baseline of 4 is applied as it effectively handles the zero-parameter case without redundancy or omission.

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 states the action ('Export') and resource ('complete audit log') with a specific format ('as JSON') and purpose ('for compliance reporting'). It distinguishes from sibling tools like 'dhis2_get_audit_log' and 'dhis2_get_audit_summary' by emphasizing export functionality rather than retrieval or summary. However, it doesn't explicitly differentiate from 'dhis2_export_for_composition', which is a different export type.

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 usage context ('for compliance reporting'), suggesting this tool is for generating reports rather than real-time monitoring. It doesn't provide explicit guidance on when to use this versus alternatives like 'dhis2_get_audit_log' or 'dhis2_get_audit_summary', nor does it mention prerequisites or exclusions. The context is clear but lacks comparative guidance.

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

dhis2_export_for_compositionC

Export the result of a DHIS2 operation in a format suitable for other MCP servers

ParametersJSON Schema
NameRequiredDescriptionDefault
toolNameYesName of the tool whose result should be exported
dataYesData to export (usually the result of a previous tool call)
targetServerNoTarget MCP server name (optional)
metadataNoAdditional metadata to include (optional)

TDQS

C2.6/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 mentions exporting for other MCP servers but fails to describe critical traits like whether this is a read-only or destructive operation, authentication needs, rate limits, or what the export format entails. This leaves significant gaps in understanding the tool's behavior.

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, efficient sentence that directly states the tool's purpose without unnecessary details. It's appropriately sized and front-loaded, though it could be slightly more informative without sacrificing brevity.

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 the tool's complexity (4 parameters, no output schema, and no annotations), the description is incomplete. It doesn't explain the export format, return values, or behavioral aspects, making it inadequate for an agent to fully understand how to use this tool effectively in context.

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 parameters (toolName, data, targetServer, metadata). The description adds no additional meaning beyond the schema, such as examples or context for how parameters interact, resulting in a baseline score of 3.

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

Purpose3/5

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

The description states the tool exports DHIS2 operation results for other MCP servers, which clarifies the verb (export) and resource (DHIS2 operation results). However, it's vague about what 'suitable for other MCP servers' means and doesn't differentiate from sibling tools like dhis2_export_audit_log or dhis2_register_compatible_server, which also involve exports or server interactions.

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 on when to use this tool versus alternatives is provided. The description implies usage for exporting data to other servers, but it doesn't specify prerequisites, exclusions, or compare to sibling tools, leaving the agent to infer context without clear direction.

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

dhis2_fix_proxy_configurationC

Generate proxy configuration and fixes for local development against DHIS2 instances

ParametersJSON Schema
NameRequiredDescriptionDefault
proxyTypeYesType of proxy configuration needed
targetInstanceYesTarget DHIS2 instance URL
localPortNoLocal development port (default: 3000)
authenticationNo
sslOptionsNo

TDQS

C2.9/5.0
Behavior2/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. It states the tool 'generates' configuration and fixes, implying a read-only or advisory role, but doesn't clarify if it modifies files, requires authentication, has side effects, or provides output format. For a tool with 5 parameters and no annotations, this is insufficient to inform safe and effective usage.

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, efficient sentence that front-loads the core purpose without unnecessary details. It avoids redundancy and wastes no words, making it easy to parse quickly. This is an example of optimal conciseness for a tool description.

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 the complexity (5 parameters, nested objects, no output schema, and no annotations), the description is incomplete. It doesn't address behavioral aspects like what the tool outputs, how it handles errors, or authentication requirements. For a configuration-generation tool with multiple parameters, more context is needed to ensure the agent can use it correctly without guesswork.

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 description adds no parameter-specific information beyond what the input schema provides. With 60% schema description coverage, the schema documents parameters like 'proxyType' and 'targetInstance' well, but others like 'authentication' and 'sslOptions' have partial coverage. The description doesn't compensate by explaining parameter interactions or usage examples, so it meets the baseline for moderate schema coverage.

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 states the tool's purpose: 'Generate proxy configuration and fixes for local development against DHIS2 instances.' It specifies the action ('generate'), resource ('proxy configuration and fixes'), and context ('local development against DHIS2 instances'), making it easy to understand. However, it doesn't explicitly differentiate from sibling tools like 'dhis2_setup_dev_environment' or 'dhis2_resolve_build_issues', which might have overlapping scopes.

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 guidance on when to use this tool versus alternatives. It mentions 'local development against DHIS2 instances,' but doesn't specify scenarios, prerequisites, or exclusions. Given the many sibling tools, such as 'dhis2_setup_dev_environment' or 'dhis2_diagnose_cors_issues,' the lack of differentiation leaves the agent guessing about appropriate use cases.

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

dhis2_generate_app_runtime_configC

Generate configuration for DHIS2 App Runtime integration

ParametersJSON Schema
NameRequiredDescriptionDefault
apiVersionNoDHIS2 API version to target (e.g., 40 for 2.40)
appNameYesName of the application
featuresNo
errorBoundaryNoInclude error boundary component
loadingMaskNoInclude loading mask component

TDQS

C2.9/5.0
Behavior2/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. It states the tool generates configuration but doesn't clarify what that entails—whether it creates files, modifies existing ones, requires specific permissions, has side effects, or what the output format is. For a tool with no annotation coverage, this leaves critical behavioral traits unspecified.

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, efficient sentence with no wasted words, front-loading the key action and target. It's appropriately sized for the tool's complexity, making it easy for an agent to parse quickly.

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 the tool has 5 parameters, nested objects, no output schema, and no annotations, the description is insufficient. It doesn't explain what 'configuration' means in practice, how it's delivered, or any behavioral context, leaving significant gaps for the agent to infer usage in a complex environment with many sibling 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?

Schema description coverage is 80%, providing good documentation for parameters like 'apiVersion' and 'features'. The description adds no additional parameter semantics beyond what the schema already explains, so it meets the baseline for high schema coverage without compensating for the 20% gap (e.g., clarifying 'errorBoundary' or 'loadingMask' usage).

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 states the action ('Generate configuration') and target ('for DHIS2 App Runtime integration'), providing a specific verb and resource. However, it doesn't differentiate from sibling tools like 'dhis2_configure_app_manifest' or 'dhis2_init_webapp' that might also handle configuration aspects, so it doesn't reach the highest clarity level.

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 guidance on when to use this tool versus alternatives. With many sibling tools related to DHIS2 configuration (e.g., 'dhis2_configure_app_manifest', 'dhis2_init_webapp'), there's no indication of context, prerequisites, or exclusions, leaving the agent to guess based on the name alone.

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

dhis2_generate_design_systemC

Generate design system tokens (palette, typography, spacing) and dark mode support

ParametersJSON Schema
NameRequiredDescriptionDefault
themeNoTheme name
enableDarkModeNoEnable prefers-color-scheme dark styles
paletteNoCustom color palette
typographyNoTypography settings (font family, scale)
spacingNoSpacing scale tokens
densityNoDensity guidance
rtlNoInclude RTL CSS variables

TDQS

C2.9/5.0
Behavior2/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. It states the tool 'generates' design system tokens, implying a creation or output operation, but doesn't specify whether this is a read-only generation (e.g., producing code snippets) or a write operation (e.g., modifying files). It also lacks details on permissions, side effects, rate limits, or output format, which are critical for a tool with 7 parameters and no output schema.

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

Conciseness5/5

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

The description is a single, efficient sentence: 'Generate design system tokens (palette, typography, spacing) and dark mode support'. It is front-loaded with the core action and resources, with no wasted words or redundancy. Every part of the sentence contributes directly to understanding the tool's purpose.

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 the complexity (7 parameters, nested objects, no output schema) and lack of annotations, the description is incomplete. It doesn't explain what the tool outputs (e.g., code, configuration files), how the generated tokens are used, or any behavioral traits like error handling. For a tool that likely produces significant UI-related assets, more context is needed to ensure correct 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?

The description mentions 'palette, typography, spacing' and 'dark mode support', which aligns with parameters like 'palette', 'typography', 'spacing', and 'enableDarkMode'. However, with 100% schema description coverage, the schema already documents all 7 parameters thoroughly. The description adds minimal value beyond the schema, such as hinting at the purpose of these tokens, but doesn't provide additional syntax, format details, or usage examples.

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 states the tool's purpose: 'Generate design system tokens (palette, typography, spacing) and dark mode support'. It specifies the verb 'generate' and resources 'design system tokens', making the action and output clear. However, it doesn't explicitly differentiate from sibling tools like 'dhis2_generate_ui_data_display' or 'dhis2_generate_ui_form_patterns', which also generate UI-related outputs, so it misses full sibling differentiation.

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 guidance on when to use this tool versus alternatives. It doesn't mention any prerequisites, context for generating design systems, or how it relates to sibling tools such as 'dhis2_configure_ui_patterns' or 'dhis2_create_ui_components'. Without such information, users must infer usage from the name alone, leading to potential misuse.

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

dhis2_generate_test_setupC

Generate testing setup and example tests for DHIS2 app

ParametersJSON Schema
NameRequiredDescriptionDefault
testFrameworkYesTesting framework to configure
testTypesNoTypes of tests to set up
coverageNo
mockSetupNo

TDQS

C2.9/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 states the tool 'generates' setup and tests, implying a write operation that creates files or configurations, but doesn't specify what exactly gets generated (e.g., files, directories, code), whether it modifies existing files, requires specific permissions, or has side effects. For a generative tool with zero annotation coverage, this lack of detail is a significant 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?

The description is a single, efficient sentence: 'Generate testing setup and example tests for DHIS2 app'. It's front-loaded with the core action and resource, with zero redundant words. Every word earns its place, making it easy to parse quickly.

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 the tool's complexity (4 parameters with nested objects, no annotations, no output schema), the description is inadequate. It doesn't explain what 'generate' entails (e.g., file outputs, overwrite behavior), how parameters interact, or what the result looks like. For a tool that likely creates multiple artifacts, more context is needed to guide effective use.

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 description mentions 'testing setup and example tests', which loosely relates to parameters like testFramework and testTypes, but adds minimal semantic value beyond the schema. With 50% schema description coverage (only testFramework and coverage have descriptions), the description doesn't compensate for undocumented parameters like testTypes and mockSetup. It provides a high-level context but no specifics on parameter usage or interactions.

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 states the tool's purpose: 'Generate testing setup and example tests for DHIS2 app'. It specifies the verb ('generate') and resource ('testing setup and example tests'), and distinguishes it from sibling tools like 'dhis2_android_setup_testing' by focusing on general DHIS2 app testing rather than Android-specific setup. However, it doesn't explicitly contrast with all testing-related siblings, keeping it at 4 rather than 5.

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 guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, appropriate contexts, or compare it to sibling tools like 'dhis2_android_setup_testing' or 'dhis2_setup_dev_environment'. The agent must infer usage from the name and parameters alone, which is insufficient for optimal tool selection.

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

dhis2_generate_ui_data_displayC

Generate @dhis2/ui data display patterns (tables, cards, lists, modal, loading states)

ParametersJSON Schema
NameRequiredDescriptionDefault
componentNameNoComponent name
includeTableNoInclude DataTable
includePaginationNoInclude pagination controls
includeCardsNoInclude Card layout
includeListsNoInclude list component
includeModalNoInclude Modal dialog
includeLoadingNoInclude CircularLoader loading state
skeletonNoInclude skeleton placeholders
emptyStateNoInclude empty state component
sortingNoInclude column sorting example
selectionNoInclude row selection example
stickyHeaderNoUse sticky header in table

TDQS

C2.9/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 states what the tool generates but lacks critical details: it doesn't specify the output format (e.g., code snippets, configuration files), whether it's a read-only or write operation, potential side effects, or any performance considerations like rate limits. For a tool with 12 parameters and no annotations, this is a significant gap in transparency.

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, efficient sentence that front-loads the core purpose ('Generate @dhis2/ui data display patterns') and lists key examples without unnecessary elaboration. Every word earns its place, making it highly concise and well-structured for quick understanding.

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 the tool's complexity (12 parameters, no output schema, and no annotations), the description is incomplete. It doesn't address what the tool outputs (e.g., code, JSON), how results are delivered, or any behavioral traits like idempotency or error handling. For a generation tool with many configuration options, more context is needed to guide effective use.

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 has 100% description coverage, with each parameter clearly documented (e.g., 'Include DataTable' for includeTable). The description adds no additional parameter semantics beyond what's in the schema, such as explaining dependencies between parameters or default behaviors. With high schema coverage, the baseline score of 3 is appropriate, as the schema does the heavy lifting.

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 states the action ('Generate') and the target ('@dhis2/ui data display patterns'), with specific examples of patterns like tables, cards, lists, modal, and loading states. It distinguishes from sibling tools like 'dhis2_create_ui_components' by focusing on data display patterns rather than general component creation, though it doesn't explicitly contrast with 'dhis2_generate_ui_form_patterns' or 'dhis2_generate_ui_navigation_layout'.

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 guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, such as needing existing data or a specific context, nor does it differentiate from similar sibling tools like 'dhis2_generate_ui_form_patterns' or 'dhis2_generate_ui_navigation_layout'. Usage is implied only through the tool's name and description.

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

dhis2_generate_ui_form_patternsC

Generate @dhis2/ui form patterns (inputs, validation, date picker, file upload, multi-select)

ParametersJSON Schema
NameRequiredDescriptionDefault
componentNameNoComponent name
includeValidationNoInclude client-side validation
includeDatePickerNoInclude DatePicker
includeFileUploadNoInclude FileInput upload
includeMultiSelectNoInclude MultiSelect
includeSelectsNoInclude SingleSelect inputs
i18nNoInclude @dhis2/d2-i18n usage
rtlNoAdd RTL considerations
accessibilityNoAdd accessibility attributes and checklist
densityNoForm density guidance

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but offers minimal behavioral insight. It mentions 'generate' but doesn't specify output format (e.g., code snippets, configuration files), whether it's idempotent, or any side effects. It lists pattern types but doesn't explain how they're integrated or if there are dependencies. This is inadequate for a tool with 10 parameters.

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, efficient sentence that front-loads the core action ('Generate @dhis2/ui form patterns') followed by specific pattern types. There's no wasted text, though it could be slightly more structured (e.g., separating core from optional features).

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 the tool's complexity (10 parameters, no annotations, no output schema), the description is incomplete. It doesn't explain what 'patterns' entail (e.g., code templates, best practices), how outputs are delivered, or any behavioral constraints. For a generation tool with many options, more context is needed to guide effective use.

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 fully documents all 10 parameters with clear descriptions. The description adds no additional parameter semantics beyond implying the tool covers the listed pattern types (inputs, validation, etc.), which partially maps to parameters like includeValidation. Baseline 3 is appropriate as the schema does the heavy lifting.

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 states the tool's purpose: 'Generate @dhis2/ui form patterns' with specific component types listed (inputs, validation, date picker, file upload, multi-select). It distinguishes from siblings like 'dhis2_generate_ui_data_display' or 'dhis2_generate_ui_navigation_layout' by focusing on form patterns. However, it doesn't explicitly contrast with 'dhis2_create_ui_components' which might overlap.

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 guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, context (e.g., for DHIS2 web app development), or compare to siblings like 'dhis2_generate_design_system' or 'dhis2_android_configure_ui_patterns'. Usage is implied but not explicitly stated.

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

dhis2_generate_ui_navigation_layoutB

Generate @dhis2/ui navigation and layout patterns (header bar, sidebar, breadcrumbs, tabs)

ParametersJSON Schema
NameRequiredDescriptionDefault
componentNameNoComponent name
includeHeaderBarNoInclude HeaderBar
includeSidebarNoInclude sidebar Menu
includeBreadcrumbsNoInclude Breadcrumbs
includeTabsNoInclude TabBar
includeResponsiveNoInclude responsive CSS
useAlertsNoInclude useAlert example for feedback
rtlNoAdd RTL considerations

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It states the tool 'generates' patterns but doesn't clarify what that means operationally: whether it creates files, returns code snippets, modifies existing projects, requires specific permissions, or has side effects. For a generation tool with 8 parameters and no annotation coverage, this is a significant gap in transparency.

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, efficient sentence that immediately states the core purpose and enumerates the key patterns. Every word earns its place with zero waste or redundancy. It's appropriately sized for a tool with clear parameters documented elsewhere.

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 generation tool with 8 parameters, 100% schema coverage, and no output schema, the description is minimally adequate but has gaps. It identifies the domain and patterns but doesn't explain what 'generate' means in practice or what format the output takes. With no annotations and no output schema, the description should provide more operational context about the tool's behavior and 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?

The input schema has 100% description coverage, with each parameter clearly documented in the schema itself. The description mentions the patterns (header bar, sidebar, breadcrumbs, tabs) which correspond to some boolean parameters, but doesn't add meaningful semantic context beyond what's already in the schema descriptions. Baseline 3 is appropriate when schema does the heavy lifting.

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 states the tool generates '@dhis2/ui navigation and layout patterns' and lists specific patterns (header bar, sidebar, breadcrumbs, tabs), which provides a specific verb+resource. However, it doesn't explicitly differentiate from sibling tools like 'dhis2_generate_ui_data_display' or 'dhis2_generate_ui_form_patterns' that also generate UI components, leaving some ambiguity about scope boundaries.

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 guidance on when to use this tool versus alternatives. There are multiple UI generation siblings (e.g., dhis2_generate_ui_data_display, dhis2_generate_ui_form_patterns), but the description doesn't indicate this is specifically for navigation/layout patterns versus other UI aspects. No prerequisites, exclusions, or contextual usage information is provided.

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

dhis2_get_audit_logC

Retrieve audit log of all MCP operations performed

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of recent entries to return (default: 50, max: 1000)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It states the tool retrieves audit logs but doesn't mention critical details like whether this is a read-only operation, authentication requirements, rate limits, pagination behavior, or what the return format looks like (e.g., JSON structure). This leaves significant gaps for a tool that likely involves system-level data access.

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, efficient sentence that directly states the tool's purpose without unnecessary words. It is front-loaded and wastes no space, making it easy for an agent to parse quickly.

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 the lack of annotations and output schema, the description is incomplete for a tool that retrieves system audit data. It doesn't explain the return format, error conditions, or behavioral constraints (e.g., access permissions), which are crucial for an agent to use this tool effectively in a DHIS2 MCP context.

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 has 100% description coverage, with the 'limit' parameter clearly documented in the schema itself. The description adds no additional parameter information beyond what the schema provides, so it meets the baseline of 3 for high schema coverage without compensating value.

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 states the verb ('Retrieve') and resource ('audit log of all MCP operations performed'), making the purpose specific and understandable. However, it doesn't explicitly differentiate from sibling tools like 'dhis2_get_audit_summary' or 'dhis2_export_audit_log', which would require mentioning scope or format differences.

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 guidance on when to use this tool versus alternatives like 'dhis2_get_audit_summary' (summary vs. detailed log) or 'dhis2_export_audit_log' (retrieve vs. export). It lacks context about use cases, prerequisites, or exclusions, leaving the agent to infer usage from tool names alone.

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

dhis2_get_audit_summaryB

Get summary statistics of audit log and system usage

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/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. It states the tool gets summary statistics, implying a read-only operation, but doesn't specify whether it requires authentication, has rate limits, returns aggregated data, or details about the summary format. This leaves significant gaps for a tool that likely accesses system logs.

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, efficient sentence that directly states the tool's purpose without any wasted words. It's appropriately sized and front-loaded, making it easy to understand at a glance.

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 the tool's complexity (accessing audit logs, likely requiring permissions) and the absence of both annotations and an output schema, the description is minimally adequate. It states what the tool does but lacks details on behavior, output format, or security context, which are important for such a tool. Without annotations, it should provide more context to be fully helpful.

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?

The tool has 0 parameters with 100% schema description coverage, so the schema fully documents the lack of inputs. The description doesn't need to add parameter details, and it correctly implies no required inputs by not mentioning any. A baseline of 4 is appropriate for zero-parameter tools.

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 states the verb 'Get' and the resource 'summary statistics of audit log and system usage', making the purpose specific and understandable. However, it doesn't explicitly distinguish this tool from sibling tools like 'dhis2_get_audit_log' or 'dhis2_export_audit_log', which prevents a perfect score.

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 guidance on when to use this tool versus alternatives. With sibling tools like 'dhis2_get_audit_log' and 'dhis2_export_audit_log' available, there's no indication of how this summary tool differs in context or when it's preferred over those options.

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

dhis2_get_composition_examplesB

Get examples of how to integrate this DHIS2 MCP server with other MCP servers

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but only states what the tool does without behavioral details. It doesn't disclose if this is a read-only operation, what format the examples are in, potential rate limits, or any side effects, which is inadequate for a tool with zero annotation coverage.

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, clear sentence that efficiently conveys the tool's purpose without unnecessary words. It is front-loaded and appropriately sized for its simple function.

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 the tool's complexity (simple read operation) but lack of annotations and output schema, the description is insufficient. It doesn't explain what the examples include, their format, or how they are returned, leaving gaps in understanding the tool's behavior and output.

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?

The tool has 0 parameters with 100% schema description coverage, so no parameter documentation is needed. The description doesn't add parameter semantics, but this is acceptable given the lack of parameters, aligning with the baseline for 0 params.

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 states the action ('Get examples') and resource ('how to integrate this DHIS2 MCP server with other MCP servers'), making the purpose understandable. It doesn't explicitly differentiate from sibling tools like 'dhis2_get_composition_recommendations' or 'dhis2_export_for_composition', but the focus on 'examples' provides some distinction.

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 on when to use this tool versus alternatives. The description lacks context about prerequisites, timing, or comparisons to sibling tools like 'dhis2_get_composition_recommendations', leaving the agent without usage direction.

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

dhis2_get_composition_recommendationsC

Get recommendations for integrating the result of the last operation with other MCP servers

ParametersJSON Schema
NameRequiredDescriptionDefault
lastToolNoName of the last tool that was executed

TDQS

C2.6/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 mentions 'recommendations' but doesn't specify what form these take (e.g., text suggestions, code snippets, configuration options) or any behavioral traits like whether this is a read-only operation, if it has side effects, or what permissions might be required. The description is too sparse to adequately inform the agent about how this tool behaves.

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 sentence that efficiently states the tool's purpose without unnecessary words. It's appropriately sized for what it communicates, though it could be more specific. There's no wasted language or redundant information in the brief description provided.

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 the complexity of integration recommendations and the lack of both annotations and output schema, the description is insufficiently complete. It doesn't explain what 'recommendations' consist of, how they're formatted, what scope they cover, or what the agent should expect as output. For a tool that presumably provides guidance on complex MCP server integration, this leaves too many unanswered questions.

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 has 100% description coverage, with the single parameter 'lastTool' documented as 'Name of the last tool that was executed'. The description adds no additional parameter information beyond what's already in the schema. According to the scoring rules, when schema description coverage is high (>80%), the baseline score is 3 even with no param info in the description.

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

Purpose3/5

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

The description states the tool 'Get recommendations for integrating the result of the last operation with other MCP servers', which provides a general purpose (getting integration recommendations) but is vague about what specific resources or data it operates on. It doesn't clearly distinguish this from sibling tools like 'dhis2_get_composition_examples' or 'dhis2_export_for_composition', leaving ambiguity about what makes this tool unique.

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 guidance on when to use this tool versus alternatives. There's no mention of prerequisites (e.g., needing to have executed a previous operation), nor does it differentiate this from similar-sounding sibling tools like 'dhis2_get_composition_examples'. The agent receives no help in determining the appropriate context for invoking this tool.

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

dhis2_get_permission_infoB

Get detailed information about current user permissions and available tools

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/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 states the tool retrieves information, implying it's a read-only operation, but doesn't specify authentication requirements, rate limits, error conditions, or the format of the returned data. For a tool that likely interacts with user permissions in a system like DHIS2, this omission is significant, as the agent lacks critical context about security and response behavior.

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, efficient sentence that directly states the tool's purpose without unnecessary words. It is front-loaded with the core action ('Get detailed information'), making it easy to parse. Every part of the sentence contributes essential information, and there is no redundancy or fluff.

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 the tool's complexity (likely involving user permissions in a DHIS2 system) and the absence of both annotations and an output schema, the description is insufficient. It doesn't explain what 'detailed information' includes (e.g., permission levels, tool lists, metadata), how the data is structured, or potential limitations. For a tool that could be critical for access control decisions, this leaves the agent under-informed about its capabilities and outputs.

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?

The tool has 0 parameters, and the schema description coverage is 100% (since there are no parameters to describe). The description doesn't need to add parameter semantics, as there are none to explain. A baseline score of 4 is appropriate because the description accurately reflects the lack of inputs, though it doesn't explicitly state 'no parameters required', which could slightly enhance clarity.

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 states the tool's purpose: 'Get detailed information about current user permissions and available tools'. It specifies the verb ('Get'), resource ('detailed information'), and scope ('current user permissions and available tools'), making the function unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'dhis2_get_server_info' or 'dhis2_get_audit_log', which prevents a perfect score.

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 guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., authentication state), use cases (e.g., checking access before performing operations), or comparisons to siblings like 'dhis2_get_server_info' (which might return general server metadata). This lack of contextual direction leaves the agent to infer usage scenarios.

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

dhis2_get_server_infoB

Get information about this MCP server and its composition capabilities

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/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 states the tool retrieves server and composition capability information but doesn't describe what specific information is returned (e.g., server version, supported features, composition limits), whether it requires authentication, or any rate limits. This leaves significant gaps for an agent to understand the tool's behavior.

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, efficient sentence that directly states the tool's purpose without unnecessary words. It is front-loaded with the core action ('Get information'), making it easy for an agent to parse quickly. Every part of the sentence earns its place by specifying the target ('this MCP server') and scope ('composition capabilities').

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 the tool's complexity (likely low, as it retrieves server info) but with no annotations and no output schema, the description is incomplete. It doesn't explain what 'composition capabilities' entail or what format the information is returned in, leaving the agent uncertain about the tool's output and usage context. More detail would help compensate for the lack of structured data.

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?

The tool has 0 parameters, and the input schema has 100% description coverage (though empty). The description doesn't need to explain parameters, so it appropriately avoids mentioning any. A baseline of 4 is applied since no parameters exist, and the description doesn't introduce confusion about inputs.

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 states the tool's purpose with a specific verb ('Get') and resource ('information about this MCP server and its composition capabilities'). It distinguishes itself from most sibling tools which focus on Android configuration, DHIS2 operations, or UI generation, though it doesn't explicitly differentiate from other 'get' tools like dhis2_get_audit_log or dhis2_get_composition_examples.

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 guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, timing (e.g., at server startup or for diagnostics), or how it differs from other information-retrieval tools in the sibling list, such as dhis2_get_permission_info or dhis2_get_composition_recommendations.

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

dhis2_init_webappC

Initialize a new DHIS2 web application project with proper scaffolding

ParametersJSON Schema
NameRequiredDescriptionDefault
appNameYesName of the application (e.g., "my-health-app")
appTitleYesHuman-readable title of the application
appDescriptionNoDescription of the application
namespaceNoApp namespace (defaults to appName if not provided)
appTypeNoType of DHIS2 application
templateNoApp template to use
typescriptNoUse TypeScript (default: true)
pwaNoEnable Progressive Web App features
outputPathNoDirectory path where to create the app (default: current directory)

TDQS

C2.9/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 states the tool initializes a project but lacks details on what 'proper scaffolding' entails, whether it modifies existing files, requires specific permissions, or has side effects like generating directories or configuration files. This is insufficient for a tool that likely performs file system operations.

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, efficient sentence that front-loads the core action and resource without unnecessary details. It earns its place by clearly stating the tool's purpose in a compact form.

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 9 parameters, no annotations, and no output schema, the description is incomplete. It doesn't explain what 'proper scaffolding' includes, the expected output (e.g., generated files), or behavioral aspects like error handling. Given the complexity and lack of structured data, more context is needed.

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 fully documents all 9 parameters. The description adds no additional parameter information beyond implying scaffolding creation, which is already covered by the tool's purpose. This meets the baseline for high schema coverage.

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 states the action ('Initialize') and the resource ('new DHIS2 web application project'), specifying it creates proper scaffolding. However, it doesn't explicitly differentiate from sibling tools like 'dhis2_android_init_project' or 'dhis2_setup_dev_environment', which may have overlapping initialization purposes.

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 on when to use this tool versus alternatives. The description doesn't mention prerequisites, target scenarios, or comparisons with sibling tools such as 'dhis2_android_init_project' for mobile apps or 'dhis2_setup_dev_environment' for general setup.

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

dhis2_migration_assistantC

Assist with migrating from deprecated d2 library to modern App Platform

ParametersJSON Schema
NameRequiredDescriptionDefault
currentStackYes
targetPlatformNo
migrationScopeNoScope of migration
codeComplexityNoCurrent codebase complexity

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It vaguely describes assistance but doesn't disclose key behavioral traits: whether this is a read-only analysis tool or performs actual migrations, what the output might be (e.g., a plan, code changes), or any side effects like file modifications. For a complex migration tool with 4 parameters, this is inadequate.

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, efficient sentence that directly states the tool's purpose without unnecessary words. It's appropriately sized and front-loaded, making it easy to parse quickly.

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 the tool's complexity (4 parameters with nested objects, no output schema, no annotations), the description is insufficient. It doesn't explain what 'assist' entails, the expected outcomes, or how parameters interact. For a migration tool that likely involves significant changes, more detail is needed to guide the agent effectively.

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 50%, with 2 of 4 parameters having descriptions in the schema. The description adds no parameter-specific information beyond the tool's general purpose. It doesn't explain what 'currentStack' or 'migrationScope' mean in context, leaving gaps. Baseline is 3 due to moderate schema coverage, but it doesn't compensate for the low coverage.

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 states the tool's purpose: 'Assist with migrating from deprecated d2 library to modern App Platform.' It specifies the verb ('assist with migrating') and the resources involved (d2 library to App Platform). However, it doesn't explicitly differentiate from sibling tools, which are mostly Android-specific or other DHIS2 utilities, so it's not a perfect 5.

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 guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, timing, or compare it to other migration or configuration tools in the sibling list. This leaves the agent guessing about appropriate contexts.

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

dhis2_optimize_performanceC

Identify and fix performance issues in DHIS2 web applications

ParametersJSON Schema
NameRequiredDescriptionDefault
performanceIssueYesType of performance issue
metricsNo
targetMetricsNo
appComplexityNoApplication complexity level

TDQS

C2.9/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 mentions 'identify and fix,' implying both diagnostic and corrective actions, but fails to detail critical aspects like required permissions, potential side effects (e.g., changes to app configuration), or expected outcomes (e.g., whether it provides a report or automatically applies fixes). This leaves significant gaps in understanding the tool's behavior.

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, direct sentence with no wasted words, clearly front-loading the core purpose. It is appropriately sized for the tool's complexity, avoiding unnecessary elaboration while stating the essential function 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 the tool's complexity (4 parameters, nested objects, no output schema, and no annotations), the description is insufficient. It lacks details on behavioral traits, parameter usage, expected outputs, and differentiation from siblings. For a tool that performs both identification and fixing of performance issues, more comprehensive guidance is needed to ensure effective use.

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 description does not mention any parameters, while the input schema has 4 parameters with 50% description coverage. Since schema coverage is moderate, the baseline is 3, as the description adds no semantic context beyond what the schema provides. It fails to explain how parameters like 'performanceIssue' or 'metrics' relate to the tool's purpose, leaving users to infer usage from the schema alone.

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 states the tool's purpose as 'Identify and fix performance issues in DHIS2 web applications,' specifying the action (identify and fix), resource (performance issues), and domain (DHIS2 web applications). However, it does not explicitly differentiate from the sibling tool 'dhis2_android_performance_optimization,' which targets Android apps, leaving some ambiguity in scope.

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 guidance on when to use this tool versus alternatives, such as the Android-focused sibling tool or other performance-related tools in the list. It lacks context on prerequisites, exclusions, or specific scenarios where this tool is most applicable, offering only a general statement without actionable usage instructions.

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

dhis2_register_compatible_serverC

Register information about a compatible MCP server for composition workflows

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesName of the MCP server
versionYesVersion of the MCP server
capabilitiesYesServer capabilities
descriptionYesDescription of the server

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden for behavioral disclosure. It states this is a registration tool, implying a write/mutation operation, but doesn't address critical aspects like authentication requirements, whether this creates persistent records, potential side effects, error handling, or what happens if duplicate servers are registered. This leaves significant behavioral gaps.

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, efficient sentence that directly states the tool's purpose without unnecessary words. It's appropriately sized for a registration tool, though it could potentially benefit from a brief second sentence about usage context given the many sibling tools.

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 mutation tool with no annotations and no output schema, the description is insufficiently complete. It doesn't explain what 'register' entails operationally, what format the registration takes, whether there are validation rules, or what the expected outcome is. The agent lacks crucial context about this write operation's behavior and 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?

With 100% schema description coverage, the schema already documents all 4 parameters thoroughly. The description doesn't add any meaningful parameter semantics beyond what's in the schema (e.g., it doesn't explain what 'compatible' means for capabilities or how this information is used in composition workflows). The baseline score of 3 reflects adequate but not enhanced parameter understanding.

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 states the action ('Register information') and the resource ('compatible MCP server for composition workflows'), providing a specific purpose. However, it doesn't explicitly differentiate this registration tool from other DHIS2 tools like 'dhis2_export_for_composition' or 'dhis2_get_composition_examples', which prevents a perfect score.

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 guidance on when to use this tool versus alternatives, prerequisites, or exclusions. With many sibling tools focused on composition workflows (e.g., 'dhis2_export_for_composition', 'dhis2_get_composition_recommendations'), the lack of contextual usage information leaves the agent guessing about appropriate scenarios.

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

dhis2_resolve_build_issuesC

Diagnose and resolve common DHIS2 app build and bundling issues

ParametersJSON Schema
NameRequiredDescriptionDefault
buildToolYesBuild tool being used
issueTypeYesType of build issue
errorMessageNoSpecific error message from build
packageManagerNoPackage manager being used
nodeVersionNoNode.js version (e.g., "18.17.0")
dependenciesNo

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavioral traits. It mentions 'diagnose and resolve,' implying both analysis and potential fixes, but lacks details on what 'resolve' entails—whether it suggests solutions, automates fixes, or requires manual intervention. It also omits information on permissions, rate limits, or side effects, which is critical for a tool that might modify configurations.

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, efficient sentence: 'Diagnose and resolve common DHIS2 app build and bundling issues.' It is front-loaded with the core purpose, contains no redundant information, and every word contributes to clarity without unnecessary elaboration.

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 the tool's complexity (6 parameters, nested objects, no output schema, and no annotations), the description is insufficient. It doesn't explain what the tool returns (e.g., diagnostic reports, resolution steps), how it handles different 'issueType' values, or behavioral nuances. For a diagnostic/resolution tool with multiple inputs, more context is needed to guide effective use.

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 (83%), with clear descriptions for parameters like 'buildTool' and 'issueType.' The description adds no additional parameter semantics beyond the schema, such as explaining how 'errorMessage' should be formatted or the impact of 'dependencies.' Given the high coverage, a baseline score of 3 is appropriate, as the schema does most of the work.

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 states the tool's purpose: 'Diagnose and resolve common DHIS2 app build and bundling issues.' It specifies the action (diagnose and resolve) and the resource (DHIS2 app build/bundling issues). However, it doesn't explicitly differentiate from sibling tools like 'dhis2_configure_build_system' or 'dhis2_optimize_performance,' which might handle related aspects.

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 guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, exclusions, or compare it to sibling tools such as 'dhis2_configure_build_system' for setup or 'dhis2_optimize_performance' for broader optimizations, leaving the agent to infer usage context.

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

dhis2_setup_authentication_patternsC

Generate authentication patterns and examples for DHIS2 app

ParametersJSON Schema
NameRequiredDescriptionDefault
authTypeYesType of authentication to implement
providersNoAuthentication providers to support
sessionManagementNo
securityFeaturesNo
redirectUrlsNo

TDQS

C2.6/5.0
Behavior2/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. It states the tool 'generates' patterns and examples, implying a read-only or creation operation, but doesn't specify output format (e.g., files, code, text), whether it modifies existing configurations, or any side effects like rate limits or authentication requirements. This is a significant gap for a tool with complex parameters and no output schema.

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

Conciseness5/5

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

The description is a single, efficient sentence with no wasted words. It's appropriately sized for a tool name that already hints at the domain (DHIS2), making it front-loaded and easy to parse quickly.

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 the complexity (5 parameters with nested objects, 40% schema coverage, no annotations, no output schema), the description is incomplete. It doesn't address what the tool outputs, how parameters influence the generation, or behavioral traits. For a tool that likely produces configuration or code examples, more context is needed to guide effective use.

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 40%, meaning most parameters lack descriptions in the schema. The tool description doesn't add any parameter-specific information beyond what's implied by the tool name (e.g., it doesn't explain how 'authType' or 'providers' relate to 'patterns and examples'). With 5 parameters and low schema coverage, the description fails to compensate, leaving key semantics unclear.

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

Purpose3/5

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

The description 'Generate authentication patterns and examples for DHIS2 app' states a clear verb ('Generate') and resource ('authentication patterns and examples'), but it's vague about what constitutes 'patterns and examples' (e.g., code snippets, configuration files, documentation). It distinguishes from most siblings by focusing on authentication, but doesn't explicitly differentiate from 'dhis2_android_setup_authentication', which could be a related tool.

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 on when to use this tool versus alternatives. The description doesn't mention prerequisites, context (e.g., for new app setup vs. existing app enhancement), or how it relates to sibling tools like 'dhis2_android_setup_authentication'. This leaves the agent without clear direction on appropriate usage scenarios.

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

dhis2_setup_dev_environmentC

Set up development environment for DHIS2 app with proper proxy and hot reload

ParametersJSON Schema
NameRequiredDescriptionDefault
dhis2InstanceYesDHIS2 instance URL for development proxy
usernameYesDHIS2 username for development
passwordYesDHIS2 password for development
portNoLocal development server port (default: 3000)
httpsNoUse HTTPS for local development
envFileNoPath to environment file (default: .env.local)

TDQS

C2.9/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 mentions setting up a proxy and hot reload, but lacks details on what the tool actually does (e.g., creates config files, starts servers, modifies code), potential side effects, authentication requirements beyond parameters, or error handling. This is inadequate for a tool with multiple parameters and no output schema.

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

Conciseness5/5

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

The description is a single, efficient sentence that front-loads the core purpose without unnecessary words. Every part ('Set up development environment', 'DHIS2 app', 'proper proxy and hot reload') contributes essential information, making it appropriately concise for the tool's complexity.

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 the tool's complexity (6 parameters, no annotations, no output schema), the description is insufficient. It lacks details on what the setup entails, expected outcomes, behavioral traits, or error conditions. While the schema covers parameters well, the description fails to provide the broader context needed for effective use, especially for a setup tool with potential side effects.

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%, providing clear documentation for all 6 parameters. The description adds no additional parameter semantics beyond implying that 'dhis2Instance', 'username', and 'password' are used for the proxy setup, but this is already inferred from the schema. Baseline score of 3 is appropriate as the schema does the heavy lifting.

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 states the action ('Set up') and target ('development environment for DHIS2 app'), specifying key features like proxy and hot reload. It distinguishes itself from sibling tools focused on Android configuration, webapp initialization, or environment validation, though it doesn't explicitly differentiate from similar setup tools like 'dhis2_init_webapp'.

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 on when to use this tool versus alternatives is provided. The description implies usage for DHIS2 app development setup, but it doesn't specify prerequisites, timing relative to other tools (e.g., before 'dhis2_init_webapp'), or exclusions for non-development scenarios.

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

dhis2_validate_environmentC

Validate and troubleshoot DHIS2 development environment setup

ParametersJSON Schema
NameRequiredDescriptionDefault
checkAllNoRun comprehensive environment validation
componentsNoSpecific components to validate
nodeVersionNoCurrent Node.js version
dhis2InstanceNoDHIS2 instance to test connectivity with
operatingSystemNoOperating system

TDQS

C2.9/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 mentions 'validate and troubleshoot,' implying diagnostic and potentially corrective actions, but doesn't specify what the tool actually does (e.g., runs checks, provides reports, suggests fixes) or any behavioral traits like side effects, permissions needed, or output format. This leaves significant gaps in understanding the tool's behavior.

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, efficient sentence: 'Validate and troubleshoot DHIS2 development environment setup.' It's front-loaded with the core purpose, has zero wasted words, and is appropriately sized for the tool's complexity. This exemplifies conciseness and good structure.

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 the tool's complexity (5 parameters, no output schema, no annotations), the description is incomplete. It doesn't explain what validation entails, what troubleshooting actions are taken, or what the output looks like. For a diagnostic tool with multiple parameters, more context is needed to guide effective use, making this inadequate.

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 has 100% description coverage, so parameters like 'checkAll' and 'components' are well-documented in the schema itself. The description adds no additional semantic context about parameters beyond the schema, such as how they interact or typical use cases. Given the high schema coverage, 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.

Purpose4/5

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

The description clearly states the tool's purpose: 'Validate and troubleshoot DHIS2 development environment setup.' It specifies the action (validate/troubleshoot) and target (DHIS2 development environment setup), which is clear and specific. However, it doesn't explicitly differentiate from sibling tools like 'dhis2_setup_dev_environment' or 'dhis2_diagnose_cors_issues,' which limits it to a 4 rather than a 5.

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 guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, context for validation (e.g., during setup vs. debugging), or how it differs from related tools like 'dhis2_diagnose_cors_issues' or 'dhis2_setup_dev_environment.' This lack of explicit usage instructions results in a low score.

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. Dates show when Glama detected each change.

  1. 47 tool updates
    • First observedandroid_generate_bottom_sheet
    • First observedandroid_generate_list_adapter
    • First observedandroid_generate_material_form
    • First observedandroid_generate_navigation_drawer
    • First observeddhis2_android_configure_camera
    • First observeddhis2_android_configure_gradle
    • First observeddhis2_android_configure_notifications
    • First observeddhis2_android_configure_storage
    • First observeddhis2_android_configure_ui_patterns
    • First observeddhis2_android_generate_data_models
    • First observeddhis2_android_init_project
    • First observeddhis2_android_performance_optimization
    • First observeddhis2_android_setup_authentication
    • First observeddhis2_android_setup_location_services
    • First observeddhis2_android_setup_offline_analytics
    • First observeddhis2_android_setup_sync
    • First observeddhis2_android_setup_testing
    • First observeddhis2_clear_audit_log
    • First observeddhis2_configure_app_manifest
    • First observeddhis2_configure_build_system
    • First observeddhis2_configure_cors_allowlist
    • First observeddhis2_create_ui_components
    • First observeddhis2_debug_authentication
    • First observeddhis2_diagnose_cors_issues
    • First observeddhis2_export_audit_log
    • First observeddhis2_export_for_composition
    • First observeddhis2_fix_proxy_configuration
    • First observeddhis2_generate_app_runtime_config
    • First observeddhis2_generate_design_system
    • First observeddhis2_generate_test_setup
    • First observeddhis2_generate_ui_data_display
    • First observeddhis2_generate_ui_form_patterns
    • First observeddhis2_generate_ui_navigation_layout
    • First observeddhis2_get_audit_log
    • First observeddhis2_get_audit_summary
    • First observeddhis2_get_composition_examples
    • First observeddhis2_get_composition_recommendations
    • First observeddhis2_get_permission_info
    • First observeddhis2_get_server_info
    • First observeddhis2_init_webapp
    • First observeddhis2_migration_assistant
    • First observeddhis2_optimize_performance
    • First observeddhis2_register_compatible_server
    • First observeddhis2_resolve_build_issues
    • First observeddhis2_setup_authentication_patterns
    • First observeddhis2_setup_dev_environment
    • First observeddhis2_validate_environment

TDQS

B3/5.0
Disambiguation3/5

The tools are organized into clear categories (Android development, web development, audit/logging, composition, configuration), which helps disambiguation. However, there is significant overlap within categories, such as multiple Android configuration tools (e.g., dhis2_android_configure_camera, dhis2_android_configure_gradle) that could be confused for similar setup tasks, and web tools like dhis2_generate_ui_form_patterns and dhis2_generate_ui_data_display that might blur boundaries in UI generation.

Naming Consistency4/5

Most tools follow a consistent snake_case pattern with a clear prefix structure (e.g., dhis2_, android_). The naming is largely predictable, grouping related tools by domain. Minor deviations exist, such as android_generate_* vs. dhis2_generate_* for similar generation tasks, but overall the conventions are readable and well-structured.

Tool Count2/5

With 47 tools, the count is excessive for a single server, leading to potential overwhelm and redundancy. While the server covers a broad domain (DHIS2 app development for Android and web), many tools could be consolidated (e.g., multiple configuration or setup tools). This high number suggests poor scoping and may hinder agent usability due to choice overload.

Completeness5/5

The tool set provides comprehensive coverage for DHIS2 app development, including initialization, configuration, UI generation, testing, debugging, performance optimization, and integration with other MCP servers. It spans both Android and web platforms, with no obvious gaps in the development lifecycle, from setup to deployment and maintenance.

Maintenance

ActivityNo data
ResponsivenessUnresponsive

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides comprehensive access to the Miro REST API v2 for advanced board management, content creation, and team collaboration. It supports over 40 tools for managing board items like sticky notes and shapes, alongside bulk operations and organizational features.
    11
    2
    Apache 2.0
  • F
    license
    A
    quality
    D
    maintenance
    Enables programmatic CAD modeling with Onshape's REST API, offering 45 tools for parametric sketches, feature management, assemblies, analysis, variables, and exports.
    45
    134
    -
  • A
    license
    A
    quality
    C
    maintenance
    Connects DHIS2 health information systems to AI assistants via the Model Context Protocol, enabling natural language queries for analytics, metadata, and tracker data.
    13
    MIT
  • A
    license
    B
    quality
    C
    maintenance
    Comprehensive read/write access to the Datto RMM API v2, enabling management of devices, sites, alerts, audits, jobs, variables, filters, and activity logs through 46 tools.
    46
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Dradebo/dhis2-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server