diff --git a/platform-mc/terminus_manager.cpp b/platform-mc/terminus_manager.cpp
index 1086292..c64c0c3 100644
--- a/platform-mc/terminus_manager.cpp
+++ b/platform-mc/terminus_manager.cpp
@@ -734,5 +734,44 @@
     co_return completionCode;
 }
 
+std::optional<mctp_eid_t> TerminusManager::getActiveEidByName(
+    const std::string& terminusName)
+{
+    if (!termini.size() || terminusName.empty())
+    {
+        return std::nullopt;
+    }
+
+    for (auto& [tid, terminus] : termini)
+    {
+        if (!terminus)
+        {
+            continue;
+        }
+
+        auto tmp = terminus->getTerminusName();
+        if (!tmp || std::empty(*tmp) || *tmp != terminusName)
+        {
+            continue;
+        }
+
+        try
+        {
+            auto mctpInfo = toMctpInfo(tid);
+            if (!mctpInfo || !mctpInfoAvailTable[*mctpInfo])
+            {
+                return std::nullopt;
+            }
+
+            return std::get<0>(*mctpInfo);
+        }
+        catch (const std::exception& e)
+        {
+            return std::nullopt;
+        }
+    }
+
+    return std::nullopt;
+}
 } // namespace platform_mc
 } // namespace pldm
