diff --git a/src/mctp/MCTPReactor.hpp b/src/mctp/MCTPReactor.hpp
new file mode 100644
index 0000000..ca20b45
--- /dev/null
+++ b/src/mctp/MCTPReactor.hpp
@@ -0,0 +1,53 @@
+#pragma once
+
+#include "MCTPDeviceRepository.hpp"
+#include "MCTPEndpoint.hpp"
+#include "Utils.hpp"
+
+#include <string>
+#include <vector>
+
+struct AssociationServer
+{
+    virtual ~AssociationServer() = default;
+
+    virtual void associate(const std::string& path,
+                           const std::vector<Association>& associations) = 0;
+    virtual void disassociate(const std::string& path) = 0;
+};
+
+class MCTPReactor : public std::enable_shared_from_this<MCTPReactor>
+{
+    using MCTPDeviceFactory = std::function<std::shared_ptr<MCTPDevice>(
+        const std::string& interface, const std::vector<std::uint8_t>& physaddr,
+        std::optional<std::uint8_t> eid)>;
+
+  public:
+    MCTPReactor() = delete;
+    MCTPReactor(const MCTPReactor&) = delete;
+    MCTPReactor(MCTPReactor&&) = delete;
+    explicit MCTPReactor(AssociationServer& server) : server(server) {}
+    ~MCTPReactor() = default;
+    MCTPReactor& operator=(const MCTPReactor&) = delete;
+    MCTPReactor& operator=(MCTPReactor&&) = delete;
+
+    void tick();
+
+    void manageMCTPDevice(const std::string& path,
+                          const std::shared_ptr<MCTPDevice>& device);
+    void unmanageMCTPDevice(const std::string& path);
+
+  private:
+    static std::optional<std::string> findSMBusInterface(int bus);
+
+    AssociationServer& server;
+    MCTPDeviceRepository devices;
+
+    // Tracks MCTP devices that have failed their setup
+    std::set<std::shared_ptr<MCTPDevice>> deferred;
+
+    void deferSetup(const std::shared_ptr<MCTPDevice>& dev);
+    void setupEndpoint(const std::shared_ptr<MCTPDevice>& dev);
+    void trackEndpoint(const std::shared_ptr<MCTPEndpoint>& ep);
+    void untrackEndpoint(const std::shared_ptr<MCTPEndpoint>& ep);
+};
