diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,9 @@
 # Revision history for pty-mcp-server
 
+## 0.1.5.0 -- 2025-12-31
+
+* Add file system tools.
+
 ## 0.1.4.0 -- 2025-09-23
 
 * Support base64 image tool response.
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -139,6 +139,14 @@
 - **`serial-message`**  
   This tool sends a specified string to the active socket connection, then waits for a recognizable prompt from the remote side. Upon detecting the prompt, it captures and returns all output received prior to it.
 
+- **`pms-list-dir`**  
+  List the contents of a directory at the specified path.
+
+- **`pms-read-file`**  
+  Read the contents of a file at the specified path.
+
+- **`pms-write-file`**  
+  Write contents to a file at the specified path.
 
 - **`Scriptable CLI Integration`**  
   The `pty-mcp-server` supports execution of shell scripts associated with registered tools defined in `tools-list.json`. Each tool must be registered by name, and a corresponding shell script (`.sh`) should exist in the configured `tools/` directory.
diff --git a/app/Main.hs b/app/Main.hs
--- a/app/Main.hs
+++ b/app/Main.hs
@@ -20,6 +20,7 @@
 import qualified PMS.Infra.Serial.App.Control as SER
 import qualified PMS.Infra.Socket.App.Control as SCK
 import qualified PMS.Infra.Watch.App.Control as IWA
+import qualified PMS.Infra.FileSystem.App.Control as IFS
 import qualified PMS.Domain.Service.App.Control as DSR
 
 #ifdef mingw32_HOST_OS
@@ -32,9 +33,9 @@
 main :: IO ()
 main = getArgs >>= \args -> do
 #ifdef mingw32_HOST_OS
-  let apps = [URQ.run, URS.run, UNO.run, ICR.run, IPS.run, IWA.run, DSR.run, SCK.run, SER.run]
+  let apps = [URQ.run, URS.run, UNO.run, ICR.run, IPS.run, IWA.run, IFS.run, DSR.run, SCK.run, SER.run]
 #else
-  let apps = [URQ.run, URS.run, UNO.run, ICR.run, IPS.run, IWA.run, DSR.run, SCK.run, SER.run, INF.run]
+  let apps = [URQ.run, URS.run, UNO.run, ICR.run, IPS.run, IWA.run, IFS.run, DSR.run, SCK.run, SER.run, INF.run]
 #endif
   flip E.catchAny exception
      $ flip E.finally finalize
diff --git a/pty-mcp-server.cabal b/pty-mcp-server.cabal
--- a/pty-mcp-server.cabal
+++ b/pty-mcp-server.cabal
@@ -20,7 +20,7 @@
 -- PVP summary:     +-+------- breaking API changes
 --                  | | +----- non-breaking API additions
 --                  | | | +--- code changes with no API change
-version:            0.1.4.0
+version:            0.1.5.0
 
 -- A short (one-line) description of the package.
 synopsis:           pty-mcp-server
@@ -81,6 +81,7 @@
             pms-infra-serial,
             pms-infra-socket,
             pms-infra-watch,
+            pms-infra-filesystem,
             pms-application-service,
             pms-domain-service,
             pms-domain-model
@@ -98,6 +99,7 @@
             pms-infra-serial,
             pms-infra-socket,
             pms-infra-watch,
+            pms-infra-filesystem,
             pms-application-service,
             pms-domain-service,
             pms-domain-model
