you can just simply code that one yourself. one day when i could not find an api for getting a shell from vertex index, i wrote that myself. it's in python, but it's not hard to understand what's going on. algorithm is simple - queue one vertex; then process the queue (untill all queue items are checked), for each vertex in the queue adding connected vertices to the same queue.
def getShellByVert(mesh,vertID):
meshFn = GeomUtils.getFnMesh(mesh)
vertexIterator = om.MItMeshVertex(meshFn.object())
vertQueue = [vertID]
i = 0
dummyPtr = om.MScriptUtil().asIntPtr()
while i<len(vertQueue):
vertexIterator.setIndex(vertQueue[i],dummyPtr)
connectedVerts = om.MIntArray()
vertexIterator.getConnectedVertices(connectedVerts)
for v in range(0,connectedVerts.length()):
if connectedVerts[v] not in vertQueue:
vertQueue.append(connectedVerts[v])
i +=1
return vertQueue
it should not be hard to do the same for UV shells.