diff --git a/src/nvidia-gpu/Inventory.cpp b/src/nvidia-gpu/Inventory.cpp
new file mode 100644
index 0000000..901eca1
--- /dev/null
+++ b/src/nvidia-gpu/Inventory.cpp
@@ -0,0 +1,42 @@
+#include "Inventory.hpp"
+
+#include "Utils.hpp"
+
+#include <NvidiaGpuMctpVdm.hpp>
+#include <phosphor-logging/lg2.hpp>
+#include <sdbusplus/asio/connection.hpp>
+#include <sdbusplus/asio/object_server.hpp>
+
+#include <exception>
+#include <memory>
+#include <string>
+
+constexpr const char* inventoryPrefix = "/xyz/openbmc_project/inventory/";
+constexpr const char* acceleratorIfaceName =
+    "xyz.openbmc_project.Inventory.Item.Accelerator";
+
+Inventory::Inventory(
+    const std::shared_ptr<sdbusplus::asio::connection>& /*conn*/,
+    sdbusplus::asio::object_server& objectServer,
+    const std::string& inventoryName,
+    const gpu::DeviceIdentification deviceType) :
+    name(escapeName(inventoryName))
+{
+    if (deviceType == gpu::DeviceIdentification::DEVICE_GPU)
+    {
+        std::string path = inventoryPrefix + name;
+        try
+        {
+            acceleratorInterface =
+                objectServer.add_interface(path, acceleratorIfaceName);
+            acceleratorInterface->register_property("Type", std::string("GPU"));
+            acceleratorInterface->initialize();
+        }
+        catch (const std::exception& e)
+        {
+            lg2::error(
+                "Failed to add accelerator interface. path='{PATH}', error='{ERROR}'",
+                "PATH", path, "ERROR", e.what());
+        }
+    }
+}
diff --git a/src/nvidia-gpu/Inventory.hpp b/src/nvidia-gpu/Inventory.hpp
new file mode 100644
index 0000000..8de490d
--- /dev/null
+++ b/src/nvidia-gpu/Inventory.hpp
@@ -0,0 +1,23 @@
+#pragma once
+
+#include "NvidiaGpuMctpVdm.hpp"
+
+#include <sdbusplus/asio/connection.hpp>
+#include <sdbusplus/asio/object_server.hpp>
+
+#include <memory>
+#include <string>
+
+class Inventory
+{
+  public:
+    Inventory(const std::shared_ptr<sdbusplus::asio::connection>& conn,
+              sdbusplus::asio::object_server& objectServer,
+              const std::string& inventoryName,
+              gpu::DeviceIdentification deviceType);
+
+  private:
+    std::shared_ptr<sdbusplus::asio::dbus_interface> acceleratorInterface;
+
+    std::string name;
+};
diff --git a/src/nvidia-gpu/NvidiaGpuDevice.cpp b/src/nvidia-gpu/NvidiaGpuDevice.cpp
index d25860d..d7ad846 100644
--- a/src/nvidia-gpu/NvidiaGpuDevice.cpp
+++ b/src/nvidia-gpu/NvidiaGpuDevice.cpp
@@ -6,6 +6,7 @@
 
 #include "NvidiaGpuDevice.hpp"
 
+#include "Inventory.hpp"
 #include "NvidiaDeviceDiscovery.hpp"
 #include "NvidiaGpuSensor.hpp"
 #include "Thresholds.hpp"
@@ -15,6 +16,7 @@
 
 #include <MctpRequester.hpp>
 #include <NvidiaGpuEnergySensor.hpp>
+#include <NvidiaGpuMctpVdm.hpp>
 #include <NvidiaGpuPowerSensor.hpp>
 #include <NvidiaGpuThresholds.hpp>
 #include <NvidiaGpuVoltageSensor.hpp>
@@ -42,6 +44,8 @@
     mctpRequester(mctpRequester), conn(conn), objectServer(objectServer),
     configs(configs), name(escapeName(name)), path(path)
 {
+    inventory = std::make_shared<Inventory>(
+        conn, objectServer, name, gpu::DeviceIdentification::DEVICE_GPU);
     makeSensors();
 }
 
diff --git a/src/nvidia-gpu/NvidiaGpuDevice.hpp b/src/nvidia-gpu/NvidiaGpuDevice.hpp
index 5357121..2937d1f 100644
--- a/src/nvidia-gpu/NvidiaGpuDevice.hpp
+++ b/src/nvidia-gpu/NvidiaGpuDevice.hpp
@@ -6,6 +6,7 @@
 
 #pragma once
 
+#include "Inventory.hpp"
 #include "MctpRequester.hpp"
 #include "NvidiaDeviceDiscovery.hpp"
 #include "NvidiaGpuPowerSensor.hpp"
@@ -71,4 +72,6 @@
     std::string name;
 
     std::string path;
+
+    std::shared_ptr<Inventory> inventory;
 };
diff --git a/src/nvidia-gpu/NvidiaGpuSensorMain.cpp b/src/nvidia-gpu/NvidiaGpuSensorMain.cpp
index 7e404f5..7e0ab9d 100644
--- a/src/nvidia-gpu/NvidiaGpuSensorMain.cpp
+++ b/src/nvidia-gpu/NvidiaGpuSensorMain.cpp
@@ -49,6 +49,7 @@
     auto systemBus = std::make_shared<sdbusplus::asio::connection>(io);
     sdbusplus::asio::object_server objectServer(systemBus, true);
     objectServer.add_manager("/xyz/openbmc_project/sensors");
+    objectServer.add_manager("/xyz/openbmc_project/inventory");
     systemBus->request_name("xyz.openbmc_project.GpuSensor");
 
     mctp::MctpRequester mctpRequester(io);
diff --git a/src/nvidia-gpu/meson.build b/src/nvidia-gpu/meson.build
index fcf15fa..9359b2b 100644
--- a/src/nvidia-gpu/meson.build
+++ b/src/nvidia-gpu/meson.build
@@ -1,4 +1,5 @@
 gpusensor_sources = files(
+    'Inventory.cpp',
     'MctpRequester.cpp',
     'NvidiaDeviceDiscovery.cpp',
     'NvidiaGpuDevice.cpp',
