Skip to main content
Glama

DHIS2 MCP Server

TypeScript Node.js DHIS2 MCP

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

✨ Features

🏗️ Complete DHIS2 Web API Coverage

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

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

  • Analytics & Reporting: Dashboards, visualizations, event analytics

  • Bulk Operations: Mass data import/export with validation

  • System Management: Connection handling, system info, statistics

🛡️ Production Grade

  • Type Safety: Comprehensive TypeScript interfaces with strict mode

  • Error Handling: Robust error management with meaningful messages

  • Testing: 26 automated tests ensuring reliability

  • Code Quality: ESLint validation and best practices

  • Build Pipeline: Complete development workflow

🔧 Developer Experience

  • 40+ MCP Tools: Every major DHIS2 operation covered

  • Detailed Schemas: Rich input validation and documentation

  • Easy Setup: Simple npm commands for all operations

  • Interactive: Perfect for API exploration and learning =======

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

Related MCP server: 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 build
# Use directly in MCP client config
npx dhis2-mcp

🔧 MCP Client Configuration

For Claude Code (Cursor)

Create .claude/config.json in your project:

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

For Claude Desktop

Add to your MCP configuration:

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

📖 Usage Examples

🏗️ Initialize DHIS2 Web App

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

📱 Create Android App Structure

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

🎨 Generate UI Components

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

🔍 Debug Development Issues

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

📚 Access Documentation

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

🛠️ Available Tool Categories

🌐 Web Development (23 tools)

  • App initialization and configuration

  • UI component generation (@dhis2/ui patterns)

  • Build system setup (webpack, vite, d2)

  • Testing framework configuration

  • Authentication patterns

📱 Android Development (17 tools)

  • Project initialization with DHIS2 SDK

  • Gradle configuration and build setup

  • UI pattern generation (Compose, XML)

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

  • Offline sync and data storage

🔗 DHIS2 API Integration (52 tools)

  • Data elements, data sets, categories

  • Programs, tracked entities, events

  • Analytics and reporting

  • Bulk data operations

  • System management

🐛 Debugging & Troubleshooting (8 tools)

  • CORS issue diagnosis

  • Authentication debugging

  • Build problem resolution

  • Performance optimization

  • Environment validation

📚 Documentation Access (9 tools)

  • Local Android SDK documentation

  • Web documentation search

  • Integration guides generation

  • Code example extraction

  • Troubleshooting assistance

🎯 Use Cases

1. Learning DHIS2 Development

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

2. Rapid Prototyping

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

3. Debugging Development Issues

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

4. Code Reference

Generate examples of DHIS2 integration patterns and best practices.

5. Mobile App Development

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

📊 Project Stats

Metric

Value

Total MCP Tools

108

Development Tools

47 (work without DHIS2 connection)

API Tools

52 (require DHIS2 connection)

Documentation Tools

9 (require external MCPs)

Test Files

4 (basic functionality testing)

TypeScript Interfaces

~100 (comprehensive type safety)

Tool Load Time

<10ms (excellent performance)

Memory Usage

~82KB (very efficient)

🔄 Realistic Roadmap

✅ Current Status (v1.0)

  • Functional MCP server with 108 tools

  • Code generation for web and Android

  • Basic DHIS2 API integration

  • Debugging and troubleshooting helpers

🔮 Future Improvements

  • Enhanced Testing: Expand test coverage beyond basic schema validation

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

  • Extended API Coverage: Add more DHIS2 Web API endpoints

  • Interactive Debugging: Real-time problem diagnosis and fixes

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

🤝 Contributing

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

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

  2. Enhanced Debugging - More diagnostic tools and solutions

  3. API Coverage - Additional DHIS2 endpoints and operations

  4. Documentation - Better examples and usage guides

  5. Testing - Expanded test coverage and validation

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

⚠️ Important Notes

This is NOT:

  • A complete DHIS2 Web API replacement

  • A production-ready backend service

  • A fully-tested enterprise solution

  • A replacement for official DHIS2 tools

This IS:

  • A development assistant and code generator

  • A learning tool for DHIS2 development patterns

  • A debugging helper for common development issues

  • A starting point for DHIS2 app development

📄 License

MIT License - see LICENSE file for details.

🙏 Acknowledgments

  • DHIS2 Community - For the platform and development patterns

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

  • TypeScript & Node.js - For the solid foundation

  • Open Source Community - For tools and libraries used


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

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

Available Tools

47 tools
android_generate_bottom_sheetC

Generate Android bottom sheet component (Compose)

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.

android_generate_navigation_drawerC

Generate Android navigation drawer pattern (Compose)

Inputs: componentName, navCompose, dynamicColor.

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_generate_ui_navigation_layoutB

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

Inputs: componentName, includeHeaderBar, includeSidebar, includeBreadcrumbs, +4 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

    B3/5.0

    Scored across 47 tools

    Disambiguation3/5

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

    Naming Consistency4/5

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

    Tool Count2/5

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

    Completeness5/5

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

    Maintenance

    ActivityMaintained
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers