diff --git a/.github/workflows/package_xml.yml b/.github/workflows/package_xml.yml
new file mode 100644
index 00000000..4bd4a9aa
--- /dev/null
+++ b/.github/workflows/package_xml.yml
@@ -0,0 +1,11 @@
+name: Validate package.xml
+
+on:
+  pull_request:
+
+jobs:
+  package-xml:
+    runs-on: ubuntu-latest
+    name: Validate package.xml
+    steps:
+      - uses: gazebo-tooling/action-gz-ci/validate_package_xml@jammy
diff --git a/package.xml b/package.xml
new file mode 100644
index 00000000..38697e63
--- /dev/null
+++ b/package.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0"?>
+<?xml-model href="http://download.ros.org/schema/package_format2.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
+<package format="2">
+  <name>gz-fuel_tools9</name>
+  <version>9.0.3</version>
+  <description>Gazebo Fuel Tools: Classes and tools for interacting with Gazebo Fuel</description>
+  <maintainer email="natekoenig@gmail.com">Nate Koenig</maintainer>
+  <license>Apache License 2.0</license>
+  <url type="website">https://github.com/gazebosim/gz-fuel-tools</url>
+
+  <buildtool_depend>cmake</buildtool_depend>
+
+  <build_depend>gz-cmake3</build_depend>
+
+  <depend>gz-common5</depend>
+  <depend>gz-math7</depend>
+  <depend>gz-msgs10</depend>
+  <depend>gz-tools2</depend>
+  <depend>gz-utils2</depend>
+  <depend>libcurl-dev</depend>
+  <depend>libgflags-dev</depend>
+  <depend>libjsoncpp-dev</depend>
+  <depend>libyaml-dev</depend>
+  <depend>libzip-dev</depend>
+  <depend>tinyxml2</depend>
+
+  <export>
+    <build_type>cmake</build_type>
+  </export>
+</package>