diff --git a/finders/FindMPFI.cmake b/finders/FindMPFI.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..3364d89961214387a6cb89e34d7bb4ed003ff9bb
--- /dev/null
+++ b/finders/FindMPFI.cmake
@@ -0,0 +1,25 @@
+find_path(MPFI_INCLUDE_DIR
+    NAMES mpfi.h
+    PATHS /usr/local/include
+    /usr/include
+    )
+
+find_library(MPFI_LIBRARY
+    NAMES mpfi
+    PATHS /usr/local/lib
+    /usr/lib
+    )
+
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(MPFI
+    REQUIRED_VARS MPFI_INCLUDE_DIR MPFI_LIBRARY)
+
+if(MPFI_FOUND AND NOT TARGET MPFI::MPFI)
+    add_library(MPFI::MPFI INTERFACE IMPORTED)
+    target_include_directories(MPFI::MPFI INTERFACE ${MPFI_INCLUDE_DIR})
+    target_link_libraries(MPFI::MPFI INTERFACE ${MPFI_LIBRARY})
+endif()
+
+mark_as_advanced(MPFI_INCLUDE_DIR)
+mark_as_advanced(MPFI_LIBRARY)
+