dhis2_register_compatible_server
Register details of a compatible MCP server, including name, version, capabilities, and description, to streamline setup for DHIS2 composition workflows.
Instructions
Register information about a compatible MCP server for composition workflows
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| capabilities | Yes | Server capabilities | |
| description | Yes | Description of the server | |
| name | Yes | Name of the MCP server | |
| version | Yes | Version of the MCP server |
Implementation Reference
- src/index.ts:1598-1641 (handler)Handler for the 'dhis2_register_compatible_server' tool. Parses arguments, constructs MCPServerInfo, calls registerCompatibleServer on MultiServerComposition instance, logs audit, and returns success message with next steps.const serverRegistrationArgs = args as { name: string; version: string; capabilities: Array<{ domain: string; operations: string[]; version: string }>; description: string; }; multiServerComposition.registerCompatibleServer({ name: serverRegistrationArgs.name, version: serverRegistrationArgs.version, capabilities: serverRegistrationArgs.capabilities, description: serverRegistrationArgs.description, compatibleWith: ['dhis2-mcp'], compositionMode: true }); auditLogger.log({ toolName: name, parameters: serverRegistrationArgs, outcome: 'success', dhis2Instance: dhis2Client?.baseURL, userId: currentUser?.username, executionTime: Date.now() - startTime }); return { content: [{ type: 'text', text: `✅ Successfully registered MCP server: ${serverRegistrationArgs.name} v${serverRegistrationArgs.version} **Capabilities Added:** ${serverRegistrationArgs.capabilities.map(cap => ` • ${cap.domain}: ${cap.operations.join(', ')}` ).join('\n')} 🔗 **Multi-Server Workflows:** Now enabled with ${multiServerComposition.getCompatibleServers().length} registered server(s) 💡 **Next Steps:** • Use dhis2_get_composition_recommendations to see integration suggestions • Use dhis2_export_for_composition to share data with other servers • Check dhis2_get_composition_examples for workflow ideas` }] };
- Core helper method that registers a compatible MCP server by storing its info in the internal compatibleServers Map and logging the registration.registerCompatibleServer(serverInfo: MCPServerInfo): void { this.compatibleServers.set(serverInfo.name, serverInfo); console.log(`[COMPOSITION] Registered compatible server: ${serverInfo.name}`); }
- src/index.ts:102-103 (registration)Instantiation of MultiServerComposition instance used by the tool handler.let multiServerComposition: MultiServerComposition = new MultiServerComposition();
- Helper method to retrieve list of registered compatible servers, used in responses.getCompatibleServers(): MCPServerInfo[] { return Array.from(this.compatibleServers.values()); }