Theres definitely no way to pass an array variable as argument to a command, unfortunately. However you can make a argument "multi use", means that you would handover the different strings this way:
cmdName -init "string1" -init "string2"...
Ironically you would need to construct the whole command inside mel as string and then execute it via "eval", so it isnt much better than cutting your single string argument inside the API afterwards. BUT there is a little hacky solution, you can write a MEL command inside the API and use the MGlobal::executeCommand() to capture the result. In MEL declare the string array with initial values as global:
global string $initArray[] = {"path1","path2"};
and inside the API:
MStringArray result;
MString cmdStr = "proc string[] returnArray(){ global string $initArray[]; return $initArray;}; returnArray()";
MGlobal::executeCommand(cmdStr, result);
// not tested this, but should work