diff --git a/src/devicetree_vpd_parser.cpp b/src/devicetree_vpd_parser.cpp
new file mode 100644
index 0000000..87bd2d7
--- /dev/null
+++ b/src/devicetree_vpd_parser.cpp
@@ -0,0 +1,44 @@
+#include "machine_context.hpp"
+
+#include <memory>
+
+int main()
+{
+    static constexpr auto reqDBusPath = "/xyz/openbmc_project/MachineContext";
+    static constexpr auto reqDBusName = "xyz.openbmc_project.MachineContext";
+
+    /*Note: OpenBMC convention typically has service name = bus name,
+    where the bus name is representative of the underlying hardware.
+
+    In the case of MachineContext, the BMC is not gathering data from
+    specific hardware, but is instead parsing device-tree nodes for
+    context about the hardware OpenBMC is running on.
+
+    Because the VPD data being parsed is coming from device-tree,
+    the daemon and matching service name reflect that.
+
+    Because the parsed data represents 'machine context' data,
+    the bus name and associated path the daemon writes to
+    reflects that instead.
+    */
+
+    sdbusplus::async::context ctx;
+    sdbusplus::server::manager_t manager{ctx, reqDBusPath};
+
+    std::unique_ptr<MachineContext> mc = nullptr;
+    if (MachineContext::keyNodeExists())
+    {
+        mc = std::make_unique<MachineContext>(ctx, reqDBusPath);
+        mc->populateFromDeviceTree();
+    }
+
+    // NOLINTNEXTLINE(readability-static-accessed-through-instance)
+    ctx.spawn([](sdbusplus::async::context& ctx) -> sdbusplus::async::task<> {
+        ctx.request_name(reqDBusName);
+        co_return;
+    }(ctx));
+
+    ctx.run();
+
+    return 0;
+};
diff --git a/src/machine_context.cpp b/src/machine_context.cpp
new file mode 100644
index 0000000..6f2c956
--- /dev/null
+++ b/src/machine_context.cpp
@@ -0,0 +1,45 @@
+/*
+// Copyright (c) 2024 Hewlett Packard Enterprise
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+*/
+
+#include "machine_context.hpp"
+
+#include <filesystem>
+#include <fstream>
+
+void MachineContext::populateFromDeviceTree()
+{
+    std::string nodeVal;
+    std::ifstream vpdStream(nodeBasePath + std::string("model"));
+    if (vpdStream && std::getline(vpdStream, nodeVal))
+    {
+        MachineContext::Asset::model(nodeVal);
+        vpdStream.close();
+    }
+
+    vpdStream.open(nodeBasePath + std::string("serial-number"));
+    if (vpdStream && std::getline(vpdStream, nodeVal))
+    {
+        MachineContext::Asset::serial_number(nodeVal);
+        vpdStream.close();
+    }
+};
+
+bool MachineContext::keyNodeExists()
+{
+    std::filesystem::path nodePath{nodeBasePath + std::string("model")};
+
+    return std::filesystem::exists(nodePath);
+};
diff --git a/src/machine_context.hpp b/src/machine_context.hpp
new file mode 100644
index 0000000..fca2a33
--- /dev/null
+++ b/src/machine_context.hpp
@@ -0,0 +1,37 @@
+/*
+// Copyright (c) 2024 Hewlett Packard Enterprise
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+*/
+
+#pragma once
+
+#include <sdbusplus/async.hpp>
+#include <xyz/openbmc_project/Inventory/Decorator/Asset/aserver.hpp>
+
+class MachineContext :
+    public sdbusplus::aserver::xyz::openbmc_project::inventory::decorator::
+        Asset<MachineContext>
+{
+  public:
+    explicit MachineContext(sdbusplus::async::context& ctx, auto path) :
+        sdbusplus::aserver::xyz::openbmc_project::inventory::decorator::Asset<
+            MachineContext>(ctx, path) {};
+
+    void populateFromDeviceTree();
+
+    static bool keyNodeExists();
+
+  private:
+    static constexpr auto nodeBasePath = "/proc/device-tree/";
+};
diff --git a/src/meson.build b/src/meson.build
index 6565efc..00b006f 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -49,3 +49,19 @@
         install_dir: installdir,
     )
 endif
+
+if get_option('devicetree-vpd')
+    cpp_args_fd = cpp_args
+    executable(
+        'devicetree-vpd-parser',
+        'machine_context.cpp',
+        'devicetree_vpd_parser.cpp',
+        cpp_args: cpp_args_fd,
+        dependencies: [
+            sdbusplus,
+            phosphor_dbus_interfaces_dep,
+        ],
+        install: true,
+        install_dir: installdir,
+    )
+endif
