DHIS2 MCP Server
The DHIS2 MCP Server is a comprehensive development assistant for building DHIS2 web and Android applications, providing code generation, project configuration, debugging, and API integration tools.
Project Setup & Configuration: Initialize new DHIS2 projects with proper scaffolding, configure build systems (Webpack, Vite, d2 CLI, Gradle), set up development environments with proxy and hot reload, and generate app manifests and runtime configurations.
Code & UI Generation: Create boilerplate code and UI components using DHIS2 UI library patterns (@dhis2/ui for web, Jetpack Compose for Android), generate authentication patterns, design system tokens, and Android data model classes.
DHIS2 API Integration: Perform operations on data elements, programs, events, analytics, reporting, and bulk data import/export across aggregate and event/tracker data models.
Development Support: Diagnose CORS issues, authentication problems, and build errors; assist with migrating from deprecated d2 library to modern App Platform; provide performance optimization guidance and validate development environments.
Mobile-Specific Features: Configure offline-first data synchronization, GPS/location services, camera integration, push notifications, and various authentication methods for Android apps.
Testing & Documentation: Set up testing frameworks (Jest, Cypress, Playwright for web; JUnit, Espresso, Robolectric for Android), generate test patterns, and provide access to local and web-based documentation.
System Management: Retrieve and export audit logs, provide server information and permission details, and manage compatible server registrations for composition workflows.
Planned integration for DHIS2 Android SDK, providing tools for mobile project setup, offline-first architecture patterns, GPS and media capture support, and synchronization strategies for health data collection apps.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@DHIS2 MCP Servergenerate a data entry form for a malaria program"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
DHIS2 MCP Server
🚀 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 buildOption 2: NPX (Recommended for MCP clients)
# 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:
New Code Generators - Additional UI patterns, project templates
Enhanced Debugging - More diagnostic tools and solutions
API Coverage - Additional DHIS2 endpoints and operations
Documentation - Better examples and usage guides
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 toolsandroid_generate_bottom_sheetC
Generate Android bottom sheet component (Compose)
| Name | Required | Description | Default |
|---|---|---|---|
| componentName | No | Composable name | |
| persistent | No | Generate persistent bottom sheet alternative |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| adapterName | No | Adapter class name | |
| itemLayout | No | ViewBinding layout base name (e.g., item_data_element) | |
| shimmer | No | Include shimmer placeholder pattern | |
| pullToRefresh | No | Include pull-to-refresh pattern | |
| stickyHeaders | No | Include sticky headers in list |
TDQS
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.
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.
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.
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.
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.
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)
| Name | Required | Description | Default |
|---|---|---|---|
| screenName | No | Composable name | |
| includeValidation | No | ||
| includeDatePicker | No | ||
| includeMultiSelect | No | ||
| dynamicColor | No | Use Material 3 dynamic color | |
| lightDark | No | Include light/dark theme setup | |
| rtl | No | Add RTL considerations | |
| snackbar | No | Include snackbar feedback example |
TDQS
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.
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.
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.
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.
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.
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.
dhis2_android_configure_cameraC
Set up camera and media capture capabilities for DHIS2 Android app
| Name | Required | Description | Default |
|---|---|---|---|
| cameraFeatures | Yes | Camera features to enable | |
| imageSettings | No | ||
| videoSettings | No | ||
| barcodeTypes | No | Supported barcode formats | |
| permissions | No | Required permissions for media capture |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| dhis2SdkVersion | Yes | DHIS2 Android SDK version | |
| buildFeatures | No | ||
| proguardRules | No | Generate ProGuard rules for DHIS2 SDK | |
| buildVariants | No | Build variants for different DHIS2 environments | |
| additionalLibraries | No | Additional Android libraries to include |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| notificationTypes | Yes | Types of notifications to implement | |
| pushProvider | No | Push notification provider | |
| triggers | No | Notification triggers | |
| scheduling | No | ||
| customization | No |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| storageType | Yes | Local database technology | |
| encryptionLevel | No | Database encryption level | |
| cacheStrategy | No | ||
| purgePolicy | No |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| uiFramework | Yes | UI framework to use | |
| components | Yes | UI components to generate | |
| designSystem | No | ||
| accessibility | No | ||
| localization | No |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| entities | Yes | DHIS2 entities to generate models for | |
| architecture | Yes | Architecture pattern for data layer | |
| dataBinding | No | Database binding approach | |
| validation | No | ||
| serialization | No | JSON serialization library |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| projectName | Yes | Android project name (e.g., "dhis2-health-tracker") | |
| applicationId | Yes | Android application ID (e.g., "org.dhis2.healthtracker") | |
| minSdkVersion | No | Minimum Android SDK version (default: 21) | |
| targetSdkVersion | No | Target Android SDK version (default: 34) | |
| language | Yes | Programming language for Android app | |
| dhis2SdkVersion | No | DHIS2 Android SDK version (e.g., "1.10.0") | |
| features | No | Features to include in the project setup | |
| architecture | No | Android architecture pattern to implement |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| optimizationAreas | Yes | Areas to optimize | |
| monitoring | No | ||
| batterOptimization | No | ||
| memoryManagement | No |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| authMethods | Yes | Authentication methods to support | |
| biometricSettings | No | ||
| sessionManagement | No | ||
| securityFeatures | No |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| locationAccuracy | Yes | Location accuracy requirements | |
| permissions | No | ||
| geofencing | No | ||
| coordinateCapture | No | ||
| offlineMapping | No | Include offline map support |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| analyticsFeatures | Yes | Analytics features to include | |
| chartTypes | No | Chart types to support | |
| dataAggregation | No | ||
| caching | No | ||
| export | No |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| syncStrategy | Yes | Data synchronization strategy | |
| syncScope | No | ||
| conflictResolution | No | Strategy for resolving sync conflicts | |
| networkConditions | No | ||
| progressTracking | No | Include sync progress tracking UI |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| testingFrameworks | Yes | Testing frameworks to include | |
| testTypes | Yes | Types of tests to generate | |
| mockStrategies | No | ||
| coverage | No |
TDQS
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.
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.
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.
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.
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.
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)
| Name | Required | Description | Default |
|---|---|---|---|
| confirmed | No | Set to true to confirm clearing the audit log |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | App name | |
| version | Yes | App version (e.g., "1.0.0") | |
| description | Yes | App description | |
| developer | Yes | ||
| icons | No | ||
| activities | Yes | ||
| authorities | No | Required DHIS2 authorities/permissions | |
| appType | No | Type of DHIS2 application | |
| launch_path | No | Launch path for the app |
TDQS
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.
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.
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.
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.
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.
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.)
| Name | Required | Description | Default |
|---|---|---|---|
| appName | Yes | Name of the application | |
| entryPoints | No | ||
| customAuthorities | No | Custom authorities required by the app | |
| pwa | No | ||
| publicPath | No | Public path for assets (for CDN deployment) | |
| proxy | No |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| allowedOrigins | Yes | URLs to add to CORS allowlist (e.g., ["http://localhost:3000", "https://myapp.example.com"]) | |
| dhis2Version | No | DHIS2 version (e.g., "2.40.4") | |
| includeSteps | No | Include step-by-step configuration instructions |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| componentType | Yes | Type of component to generate | |
| componentName | Yes | Name of the component | |
| features | No | ||
| dataIntegration | No | ||
| styling | No |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| issueType | Yes | Type of authentication issue | |
| dhis2Instance | Yes | DHIS2 instance URL | |
| authMethod | Yes | Authentication method being used | |
| errorDetails | No | ||
| browserSettings | No |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| dhis2Instance | Yes | DHIS2 instance URL (e.g., https://play.dhis2.org/2.40.4) | |
| localDevelopmentUrl | Yes | Local development URL (e.g., http://localhost:3000) | |
| browser | Yes | Browser being used for development | |
| errorMessage | No | Specific CORS error message received | |
| symptoms | No | Symptoms experienced |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| toolName | Yes | Name of the tool whose result should be exported | |
| data | Yes | Data to export (usually the result of a previous tool call) | |
| targetServer | No | Target MCP server name (optional) | |
| metadata | No | Additional metadata to include (optional) |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| proxyType | Yes | Type of proxy configuration needed | |
| targetInstance | Yes | Target DHIS2 instance URL | |
| localPort | No | Local development port (default: 3000) | |
| authentication | No | ||
| sslOptions | No |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| apiVersion | No | DHIS2 API version to target (e.g., 40 for 2.40) | |
| appName | Yes | Name of the application | |
| features | No | ||
| errorBoundary | No | Include error boundary component | |
| loadingMask | No | Include loading mask component |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| theme | No | Theme name | |
| enableDarkMode | No | Enable prefers-color-scheme dark styles | |
| palette | No | Custom color palette | |
| typography | No | Typography settings (font family, scale) | |
| spacing | No | Spacing scale tokens | |
| density | No | Density guidance | |
| rtl | No | Include RTL CSS variables |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| testFramework | Yes | Testing framework to configure | |
| testTypes | No | Types of tests to set up | |
| coverage | No | ||
| mockSetup | No |
TDQS
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.
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.
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.
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.
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.
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)
| Name | Required | Description | Default |
|---|---|---|---|
| componentName | No | Component name | |
| includeTable | No | Include DataTable | |
| includePagination | No | Include pagination controls | |
| includeCards | No | Include Card layout | |
| includeLists | No | Include list component | |
| includeModal | No | Include Modal dialog | |
| includeLoading | No | Include CircularLoader loading state | |
| skeleton | No | Include skeleton placeholders | |
| emptyState | No | Include empty state component | |
| sorting | No | Include column sorting example | |
| selection | No | Include row selection example | |
| stickyHeader | No | Use sticky header in table |
TDQS
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.
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.
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.
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.
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.
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)
| Name | Required | Description | Default |
|---|---|---|---|
| componentName | No | Component name | |
| includeValidation | No | Include client-side validation | |
| includeDatePicker | No | Include DatePicker | |
| includeFileUpload | No | Include FileInput upload | |
| includeMultiSelect | No | Include MultiSelect | |
| includeSelects | No | Include SingleSelect inputs | |
| i18n | No | Include @dhis2/d2-i18n usage | |
| rtl | No | Add RTL considerations | |
| accessibility | No | Add accessibility attributes and checklist | |
| density | No | Form density guidance |
TDQS
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.
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.
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.
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.
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.
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_get_audit_logC
Retrieve audit log of all MCP operations performed
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of recent entries to return (default: 50, max: 1000) |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| lastTool | No | Name of the last tool that was executed |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| appName | Yes | Name of the application (e.g., "my-health-app") | |
| appTitle | Yes | Human-readable title of the application | |
| appDescription | No | Description of the application | |
| namespace | No | App namespace (defaults to appName if not provided) | |
| appType | No | Type of DHIS2 application | |
| template | No | App template to use | |
| typescript | No | Use TypeScript (default: true) | |
| pwa | No | Enable Progressive Web App features | |
| outputPath | No | Directory path where to create the app (default: current directory) |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| currentStack | Yes | ||
| targetPlatform | No | ||
| migrationScope | No | Scope of migration | |
| codeComplexity | No | Current codebase complexity |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| performanceIssue | Yes | Type of performance issue | |
| metrics | No | ||
| targetMetrics | No | ||
| appComplexity | No | Application complexity level |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name of the MCP server | |
| version | Yes | Version of the MCP server | |
| capabilities | Yes | Server capabilities | |
| description | Yes | Description of the server |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| buildTool | Yes | Build tool being used | |
| issueType | Yes | Type of build issue | |
| errorMessage | No | Specific error message from build | |
| packageManager | No | Package manager being used | |
| nodeVersion | No | Node.js version (e.g., "18.17.0") | |
| dependencies | No |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| authType | Yes | Type of authentication to implement | |
| providers | No | Authentication providers to support | |
| sessionManagement | No | ||
| securityFeatures | No | ||
| redirectUrls | No |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| dhis2Instance | Yes | DHIS2 instance URL for development proxy | |
| username | Yes | DHIS2 username for development | |
| password | Yes | DHIS2 password for development | |
| port | No | Local development server port (default: 3000) | |
| https | No | Use HTTPS for local development | |
| envFile | No | Path to environment file (default: .env.local) |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| checkAll | No | Run comprehensive environment validation | |
| components | No | Specific components to validate | |
| nodeVersion | No | Current Node.js version | |
| dhis2Instance | No | DHIS2 instance to test connectivity with | |
| operatingSystem | No | Operating system |
TDQS
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.
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.
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.
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.
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.
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.
47 tool updates
- First observed
android_generate_bottom_sheet - First observed
android_generate_list_adapter - First observed
android_generate_material_form - First observed
android_generate_navigation_drawer - First observed
dhis2_android_configure_camera - First observed
dhis2_android_configure_gradle - First observed
dhis2_android_configure_notifications - First observed
dhis2_android_configure_storage - First observed
dhis2_android_configure_ui_patterns - First observed
dhis2_android_generate_data_models - First observed
dhis2_android_init_project - First observed
dhis2_android_performance_optimization - First observed
dhis2_android_setup_authentication - First observed
dhis2_android_setup_location_services - First observed
dhis2_android_setup_offline_analytics - First observed
dhis2_android_setup_sync - First observed
dhis2_android_setup_testing - First observed
dhis2_clear_audit_log - First observed
dhis2_configure_app_manifest - First observed
dhis2_configure_build_system - First observed
dhis2_configure_cors_allowlist - First observed
dhis2_create_ui_components - First observed
dhis2_debug_authentication - First observed
dhis2_diagnose_cors_issues - First observed
dhis2_export_audit_log - First observed
dhis2_export_for_composition - First observed
dhis2_fix_proxy_configuration - First observed
dhis2_generate_app_runtime_config - First observed
dhis2_generate_design_system - First observed
dhis2_generate_test_setup - First observed
dhis2_generate_ui_data_display - First observed
dhis2_generate_ui_form_patterns - First observed
dhis2_generate_ui_navigation_layout - First observed
dhis2_get_audit_log - First observed
dhis2_get_audit_summary - First observed
dhis2_get_composition_examples - First observed
dhis2_get_composition_recommendations - First observed
dhis2_get_permission_info - First observed
dhis2_get_server_info - First observed
dhis2_init_webapp - First observed
dhis2_migration_assistant - First observed
dhis2_optimize_performance - First observed
dhis2_register_compatible_server - First observed
dhis2_resolve_build_issues - First observed
dhis2_setup_authentication_patterns - First observed
dhis2_setup_dev_environment - First observed
dhis2_validate_environment
TDQS
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.
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.
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.
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
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
Read and edit GA4, Search Console and Google Tag Manager from any MCP client. 29 tools.
49 developer tools via MCP: DNS, WHOIS, IP lookup, JWT, hashing, QR, and more.
200+ read/write tools for GA4, Search Console, Google Ads, Shopify, WooCommerce, Shopware & more.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceProvides 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.112Apache 2.0
- FlicenseAqualityDmaintenanceEnables programmatic CAD modeling with Onshape's REST API, offering 45 tools for parametric sketches, feature management, assemblies, analysis, variables, and exports.45134-
- AlicenseAqualityCmaintenanceConnects DHIS2 health information systems to AI assistants via the Model Context Protocol, enabling natural language queries for analytics, metadata, and tracker data.13MIT
- AlicenseBqualityCmaintenanceComprehensive 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.46MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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