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 "Deploy 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 Server generate 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: Datto RMM 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)
Inputs: componentName, persistent.
android_generate_list_adapterC
Generate Android RecyclerView adapter and layout for DHIS2-style lists
Inputs: adapterName, itemLayout, shimmer, pullToRefresh, +1 more.
android_generate_material_formC
Generate Android Jetpack Compose form patterns (Material Design)
Inputs: screenName, includeValidation, includeDatePicker, includeMultiSelect, +4 more.
dhis2_android_configure_cameraC
Set up camera and media capture capabilities for DHIS2 Android app
Inputs: cameraFeatures (required), imageSettings, videoSettings, barcodeTypes, +1 more.
dhis2_android_configure_gradleB
Generate Gradle build configuration for DHIS2 Android SDK integration
Inputs: dhis2SdkVersion (required), buildFeatures, proguardRules, buildVariants, +1 more.
dhis2_android_configure_notificationsC
Set up push notifications and local notifications for DHIS2 Android app
Inputs: notificationTypes (required), pushProvider, triggers, scheduling, +1 more.
dhis2_android_configure_storageC
Set up local storage and database configuration for DHIS2 Android app
Inputs: storageType (required), encryptionLevel, cacheStrategy, purgePolicy.
dhis2_android_configure_ui_patternsC
Generate Android UI patterns and components for DHIS2 apps
Inputs: uiFramework (required), components (required), designSystem, accessibility, +1 more.
dhis2_android_generate_data_modelsC
Generate Android data model classes and repositories for DHIS2 entities
Inputs: entities (required), architecture (required), dataBinding, validation, +1 more.
dhis2_android_init_projectC
Initialize a new Android project with DHIS2 SDK integration
Inputs: projectName (required), applicationId (required), language (required), minSdkVersion, +4 more.
dhis2_android_performance_optimizationC
Generate performance optimization patterns and monitoring for DHIS2 Android app
Inputs: optimizationAreas (required), monitoring, batterOptimization, memoryManagement.
dhis2_android_setup_authenticationC
Configure authentication and security patterns for DHIS2 Android app
Inputs: authMethods (required), biometricSettings, sessionManagement, securityFeatures.
dhis2_android_setup_location_servicesC
Configure GPS and location services for DHIS2 Android app
Inputs: locationAccuracy (required), permissions, geofencing, coordinateCapture, +1 more.
dhis2_android_setup_offline_analyticsC
Configure offline analytics and reporting capabilities for DHIS2 Android app
Inputs: analyticsFeatures (required), chartTypes, dataAggregation, caching, +1 more.
dhis2_android_setup_syncC
Configure offline-first data synchronization patterns for DHIS2 Android app
Inputs: syncStrategy (required), syncScope, conflictResolution, networkConditions, +1 more.
dhis2_android_setup_testingC
Configure testing framework and generate test patterns for DHIS2 Android app
Inputs: testingFrameworks (required), testTypes (required), mockStrategies, coverage.
dhis2_clear_audit_logB
Clear the audit log (requires confirmation)
Inputs: confirmed.
dhis2_configure_app_manifestC
Generate or update manifest.webapp file for DHIS2 app
Inputs: name (required), version (required), description (required), developer (required), +5 more.
dhis2_configure_build_systemC
Set up build system configuration for DHIS2 app (d2.config.js, webpack, etc.)
Inputs: appName (required), entryPoints, customAuthorities, pwa, +2 more.
dhis2_configure_cors_allowlistB
Generate instructions and configuration for DHIS2 CORS allowlist setup
Inputs: allowedOrigins (required), dhis2Version, includeSteps.
dhis2_create_ui_componentsC
Generate common UI components using DHIS2 UI library patterns
Inputs: componentType (required), componentName (required), features, dataIntegration, +1 more.
dhis2_debug_authenticationC
Debug authentication issues including login failures, session management, and cookie problems
Inputs: issueType (required), dhis2Instance (required), authMethod (required), errorDetails, +1 more.
dhis2_diagnose_cors_issuesB
Diagnose and provide solutions for CORS (Cross-Origin Resource Sharing) issues in DHIS2 app development
Inputs: dhis2Instance (required), localDevelopmentUrl (required), browser (required), errorMessage, +1 more.
dhis2_export_audit_logB
Export complete audit log as JSON for compliance reporting
Inputs: no named parameters.
dhis2_export_for_compositionC
Export the result of a DHIS2 operation in a format suitable for other MCP servers
Inputs: toolName (required), data (required), targetServer, metadata.
dhis2_fix_proxy_configurationC
Generate proxy configuration and fixes for local development against DHIS2 instances
Inputs: proxyType (required), targetInstance (required), localPort, authentication, +1 more.
dhis2_generate_app_runtime_configC
Generate configuration for DHIS2 App Runtime integration
Inputs: appName (required), apiVersion, features, errorBoundary, +1 more.
dhis2_generate_design_systemC
Generate design system tokens (palette, typography, spacing) and dark mode support
Inputs: theme, enableDarkMode, palette, typography, +3 more.
dhis2_generate_test_setupC
Generate testing setup and example tests for DHIS2 app
Inputs: testFramework (required), testTypes, coverage, mockSetup.
dhis2_generate_ui_data_displayC
Generate @dhis2/ui data display patterns (tables, cards, lists, modal, loading states)
Inputs: componentName, includeTable, includePagination, includeCards, +8 more.
dhis2_generate_ui_form_patternsC
Generate @dhis2/ui form patterns (inputs, validation, date picker, file upload, multi-select)
Inputs: componentName, includeValidation, includeDatePicker, includeFileUpload, +6 more.
dhis2_get_audit_logC
Retrieve audit log of all MCP operations performed
Inputs: limit.
dhis2_get_audit_summaryB
Get summary statistics of audit log and system usage
Inputs: no named parameters.
dhis2_get_composition_examplesB
Get examples of how to integrate this DHIS2 MCP server with other MCP servers
Inputs: no named parameters.
dhis2_get_composition_recommendationsC
Get recommendations for integrating the result of the last operation with other MCP servers
Inputs: lastTool.
dhis2_get_permission_infoB
Get detailed information about current user permissions and available tools
Inputs: no named parameters.
dhis2_get_server_infoB
Get information about this MCP server and its composition capabilities
Inputs: no named parameters.
dhis2_init_webappC
Initialize a new DHIS2 web application project with proper scaffolding
Inputs: appName (required), appTitle (required), appDescription, namespace, +5 more.
dhis2_migration_assistantC
Assist with migrating from deprecated d2 library to modern App Platform
Inputs: currentStack (required), targetPlatform, migrationScope, codeComplexity.
dhis2_optimize_performanceC
Identify and fix performance issues in DHIS2 web applications
Inputs: performanceIssue (required), metrics, targetMetrics, appComplexity.
dhis2_register_compatible_serverC
Register information about a compatible MCP server for composition workflows
Inputs: name (required), version (required), capabilities (required), description (required).
dhis2_resolve_build_issuesC
Diagnose and resolve common DHIS2 app build and bundling issues
Inputs: buildTool (required), issueType (required), errorMessage, packageManager, +2 more.
dhis2_setup_authentication_patternsC
Generate authentication patterns and examples for DHIS2 app
Inputs: authType (required), providers, sessionManagement, securityFeatures, +1 more.
dhis2_setup_dev_environmentC
Set up development environment for DHIS2 app with proper proxy and hot reload
Inputs: dhis2Instance (required), username (required), password (required), port, +2 more.
dhis2_validate_environmentC
Validate and troubleshoot DHIS2 development environment setup
Inputs: checkAll, components, nodeVersion, dhis2Instance, +1 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 47 tools
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
Related MCP Connectors
26 deterministic tools: PDF, image, QR, CSV/Excel, HTML to PDF, DNS/RDAP, FX rates, time zones.
26 deterministic tools: PDF, image, QR, CSV/Excel, HTML to PDF, DNS/RDAP, FX rates, time zones.
Read and edit GA4, Search Console and Google Tag Manager from any MCP client. 29 tools.
Related MCP Servers
- AlicenseAqualityDmaintenanceConnects DHIS2 health information systems to AI assistants via the Model Context Protocol, enabling natural language queries for analytics, metadata, and tracker data.13MIT
- AlicenseBqualityDmaintenanceComprehensive 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
- AlicenseAqualityBmaintenanceEnables AI agents to query Kenya health facilities, maternal health indicators, immunization coverage, and disease surveillance data via the DHIS2 public API.3262 PyPIMIT
- AlicenseAqualityCmaintenanceEnables read-only interaction with DHIS2 health data by searching indicators and querying compact analytics results, designed for small local models.2MIT