diff --git a/qlfile b/qlfile
index c040f69..1a80fc6 100644
--- a/qlfile
+++ b/qlfile
@@ -8,3 +8,5 @@ git lack-mw https://github.com/skyizwhite/lack-mw.git
 git trivial-backtrace https://github.com/hraban/trivial-backtrace.git
 ql cl-dotenv
 ql clack-errors
+git microcms https://github.com/skyizwhite/microcms-lisp-sdk
+ql local-time
diff --git a/qlfile.lock b/qlfile.lock
index 59d04d7..e1347c4 100644
--- a/qlfile.lock
+++ b/qlfile.lock
@@ -42,3 +42,11 @@
  (:class qlot/source/ql:source-ql
   :initargs (:%version :latest)
   :version "ql-2019-08-13"))
+("microcms" .
+ (:class qlot/source/git:source-git
+  :initargs (:remote-url "https://github.com/skyizwhite/microcms-lisp-sdk")
+  :version "git-bdedc0f81109beef04aead37b398a1ebb32fd052"))
+("local-time" .
+ (:class qlot/source/ql:source-ql
+  :initargs (:%version :latest)
+  :version "ql-2024-10-12"))
diff --git a/src/env.lisp b/src/env.lisp
index 0963396..e10257f 100644
--- a/src/env.lisp
+++ b/src/env.lisp
@@ -3,7 +3,9 @@
   (:import-from #:cl-dotenv
                 #:load-env)
   (:export #:hp-env
-           #:hp-url))
+           #:hp-url
+           #:microcms-service-domain
+           #:microcms-api-key))
 (in-package #:hp/env)
 
 (load-env (merge-pathnames "./.env"))
@@ -14,3 +16,5 @@
 
 (env-var hp-env "HP_ENV")
 (env-var hp-url "HP_URL")
+(env-var microcms-service-domain "MICROCMS_SERVICE_DOMAIN")
+(env-var microcms-api-key "MICROCMS_API_KEY")
diff --git a/src/lib/cms.lisp b/src/lib/cms.lisp
new file mode 100644
index 0000000..349f061
--- /dev/null
+++ b/src/lib/cms.lisp
@@ -0,0 +1,15 @@
+(defpackage #:hp/lib/cms
+  (:use #:cl)
+  (:import-from #:microcms
+                #:define-list-client)
+  (:import-from #:hp/env
+                #:microcms-service-domain
+                #:microcms-api-key)
+  (:export #:get-blog-list
+           #:get-blog-detail))
+(in-package :hp/lib/cms)
+
+(setf microcms:*service-domain* (microcms-service-domain))
+(setf microcms:*api-key* (microcms-api-key))
+
+(define-list-client blog)