In Shapely's tutorial there is a nice example (illustrated bellow) on how to find the intersection between exactly two points:
a = Point(1, 1).buffer(1.5)
b = Point(2, 1).buffer(1.5)
a.intersection(b)
a.union(b)
What it doesn't say though is how to find the intersection between more than three points at the same time. Any ideas?