You could try MeshLab. It is an open-source 3D triangular meshes processing and editing software, with Python scripting capabilities through PyMeshLab. It supports boolean operations between meshes: difference, intersection & union.
These operations rely on the libigl C++ geomtry processing library. According to Meshlab, the intersection algorithm is based on the following paper: Zhou, Q., Grinspun, E., Zorin, D., & Jacobson, A. (2016). Mesh arrangements for solid geometry. ACM Transactions on Graphics (TOG), 35(4), 1-15.
I'm afraid that if you goal is beyond (triangular) mesh/mesh intersection, you'd need to implement the intersection algorithm yourself.