Alright guys so that was a tricky one but I'm leaving here as a reference.
All you have to do is to cast the value returned from MEF to a ExportedDelegate and call CreateDelegate the right way:
This sets the Import we want:
var importDefinition = new ImportDefinition(e => true, obj.GetType().FullName, ImportCardinality.ZeroOrMore, false, false);
var objectsWithMethods = container.GetExports(importDefinition)
.Where(x => x.Value is IYourInterface)
.Select(x => x.Value)
.ToList();
This gets the methods of the objects found above (iterate objectsWithMethods in a foreach using objectsWithMethod):
var endPointsImportDefinition = new ImportDefinition(e => true, objectsWithMethod.GetType().FullName, ImportCardinality.ZeroOrMore, false, false);
var endPoints = container.GetExports(endPointsImportDefinition)
.Where(x => x.Value is ExportedDelegate)
.Select(x => x.Value)
.ToList();
And finally to get MethodInfo (which allows you to run the method) you use:
var endPointMethod = (endPoint as ExportedDelegate).CreateDelegate(typeof(Delegate)).GetMethodInfo();
What also could be:
var endPointMethod = (endPoint as ExportedDelegate).CreateDelegate(typeof(Delegate)).Method;
Hope it helps anyone!