diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,9 @@
 # Revision history for pms-domain-model
 
+## 0.1.7.0 -- 2026-05-15
+
+* Add file system tools.
+
 ## 0.1.6.0 -- 2026-05-02
 
 * Add agentAllowedCmds whitelist support for agent-proc-run.
diff --git a/pms-domain-model.cabal b/pms-domain-model.cabal
--- a/pms-domain-model.cabal
+++ b/pms-domain-model.cabal
@@ -20,7 +20,7 @@
 -- PVP summary:     +-+------- breaking API changes
 --                  | | +----- non-breaking API additions
 --                  | | | +--- code changes with no API change
-version:            0.1.6.0
+version:            0.1.7.0
 
 -- A short (one-line) description of the package.
 synopsis:           pms-domain-model
diff --git a/src/PMS/Domain/Model/DM/Type.hs b/src/PMS/Domain/Model/DM/Type.hs
--- a/src/PMS/Domain/Model/DM/Type.hs
+++ b/src/PMS/Domain/Model/DM/Type.hs
@@ -1194,6 +1194,47 @@
 makeLenses ''ReadFileFileSystemCommandData
 
 -- |
+-- Command data for the pms-patch-file MCP tool.
+-- Carries the JSON-RPC request envelope and raw JSON arguments (path + patch).
+data PatchFileFileSystemCommandData =
+  PatchFileFileSystemCommandData {
+    _jsonrpcPatchFileFileSystemCommandData   :: JsonRpcRequest
+  , _argumentsPatchFileFileSystemCommandData :: RawJsonByteString
+  } deriving (Show, Read, Eq)
+
+makeLenses ''PatchFileFileSystemCommandData
+
+-- |
+-- Command data for the pms-file-info MCP tool.
+data FileInfoFileSystemCommandData =
+  FileInfoFileSystemCommandData {
+    _jsonrpcFileInfoFileSystemCommandData   :: JsonRpcRequest
+  , _argumentsFileInfoFileSystemCommandData :: RawJsonByteString
+  } deriving (Show, Read, Eq)
+
+makeLenses ''FileInfoFileSystemCommandData
+
+-- |
+-- Command data for the pms-grep-file MCP tool.
+data GrepFileFileSystemCommandData =
+  GrepFileFileSystemCommandData {
+    _jsonrpcGrepFileFileSystemCommandData   :: JsonRpcRequest
+  , _argumentsGrepFileFileSystemCommandData :: RawJsonByteString
+  } deriving (Show, Read, Eq)
+
+makeLenses ''GrepFileFileSystemCommandData
+
+-- |
+-- Command data for the pms-replace-file MCP tool.
+data ReplaceFileFileSystemCommandData =
+  ReplaceFileFileSystemCommandData {
+    _jsonrpcReplaceFileFileSystemCommandData   :: JsonRpcRequest
+  , _argumentsReplaceFileFileSystemCommandData :: RawJsonByteString
+  } deriving (Show, Read, Eq)
+
+makeLenses ''ReplaceFileFileSystemCommandData
+
+-- |
 --
 data FileSystemCommand =
     EchoFileSystemCommand EchoFileSystemCommandData
@@ -1201,6 +1242,10 @@
   | MakeDirFileSystemCommand MakeDirFileSystemCommandData
   | ReadFileFileSystemCommand ReadFileFileSystemCommandData
   | WriteFileFileSystemCommand WriteFileFileSystemCommandData
+  | PatchFileFileSystemCommand PatchFileFileSystemCommandData  -- ^ Apply a unified diff patch to a file
+  | FileInfoFileSystemCommand FileInfoFileSystemCommandData    -- ^ Get file info (line count, byte size)
+  | GrepFileFileSystemCommand GrepFileFileSystemCommandData    -- ^ Grep file with regex, return JSON hits
+  | ReplaceFileFileSystemCommand ReplaceFileFileSystemCommandData  -- ^ Replace literal text in a file
   deriving (Show, Read, Eq)
 
 -- |
@@ -1211,6 +1256,10 @@
 getJsonRpcFileSystemCommand (MakeDirFileSystemCommand d)   = d^.jsonrpcMakeDirFileSystemCommandData
 getJsonRpcFileSystemCommand (ReadFileFileSystemCommand d)  = d^.jsonrpcReadFileFileSystemCommandData
 getJsonRpcFileSystemCommand (WriteFileFileSystemCommand d) = d^.jsonrpcWriteFileFileSystemCommandData
+getJsonRpcFileSystemCommand (PatchFileFileSystemCommand d) = d^.jsonrpcPatchFileFileSystemCommandData
+getJsonRpcFileSystemCommand (FileInfoFileSystemCommand d)  = d^.jsonrpcFileInfoFileSystemCommandData
+getJsonRpcFileSystemCommand (GrepFileFileSystemCommand d)  = d^.jsonrpcGrepFileFileSystemCommandData
+getJsonRpcFileSystemCommand (ReplaceFileFileSystemCommand d) = d^.jsonrpcReplaceFileFileSystemCommandData
 
 --------------------------------------------------------------------------------
 -- |
