dhis2_export_for_composition
Export DHIS2 operation results into a compatible format for integration with other MCP servers, ensuring smooth data transfer and interoperability across systems.
Instructions
Export the result of a DHIS2 operation in a format suitable for other MCP servers
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | Data to export (usually the result of a previous tool call) | |
| metadata | No | Additional metadata to include (optional) | |
| targetServer | No | Target MCP server name (optional) | |
| toolName | Yes | Name of the tool whose result should be exported |
Implementation Reference
- src/index.ts:1686-1738 (handler)Main handler for 'dhis2_export_for_composition' tool: extracts arguments, invokes helper to standardize export data, audits the operation, and returns formatted response with JSON export context.case 'dhis2_export_for_composition': const exportArgs = args as { toolName: string; data: any; targetServer?: string; metadata?: Record<string, any>; }; const exportContext = multiServerComposition.exportDataForComposition( exportArgs.toolName, exportArgs.data, { targetServer: exportArgs.targetServer, ...exportArgs.metadata } ); auditLogger.log({ toolName: name, parameters: exportArgs, outcome: 'success', dhis2Instance: dhis2Client?.baseURL, userId: currentUser?.username, executionTime: Date.now() - startTime, resourcesAffected: [exportArgs.toolName] }); return { content: [{ type: 'text', text: `📤 Data Exported for Multi-Server Composition **Export Details:** • Source Tool: ${exportArgs.toolName} • Timestamp: ${exportContext.timestamp} • Target Server: ${exportArgs.targetServer || 'Any compatible server'} • Operation Type: ${exportContext.operationType} **Standardized Export Format:** \`\`\`json ${JSON.stringify(exportContext, null, 2)} \`\`\` **Compatible Servers:** ${multiServerComposition.getCompatibleServers().map(s => s.name).join(', ') || 'None registered'} **Next Steps:** • Share this exported data with other MCP servers • Use the standardized format for workflow automation • Check server documentation for import procedures 💡 **Integration Tip:** This format is designed to work seamlessly with GitHub, Slack, Database, and other MCP servers.` }] };
- Helper method that standardizes DHIS2 tool output into CrossServerContext format for multi-server composition workflows.exportDataForComposition(toolName: string, result: any, metadata: Record<string, any> = {}): CrossServerContext { return this.createCrossServerContext( this.serverInfo.name, result, 'export', { toolName, ...metadata } ); }
- Type definition for the standardized export format used by the tool.export interface CrossServerContext { sourceServer: string; targetServer?: string; data: any; timestamp: string; operationType: 'export' | 'import' | 'transform' | 'notify'; metadata: Record<string, any>; }
- Supporting method that creates and stores CrossServerContext instances with history management.createCrossServerContext( sourceServer: string, data: any, operationType: 'export' | 'import' | 'transform' | 'notify', metadata: Record<string, any> = {} ): CrossServerContext { const context: CrossServerContext = { sourceServer, data, timestamp: new Date().toISOString(), operationType, metadata }; this.contextHistory.push(context); // Keep only last 100 contexts if (this.contextHistory.length > 100) { this.contextHistory = this.contextHistory.slice(-100); } return context; }