3542 文字
18 分

Coolifyインストールから「プロンプトでデプロイ」まで:Claude Code MCP実践

概要#

  • Coolifyのインストールはコマンド1発、初期設定も数分で完了
  • MCP(Model Context Protocol)を使えば、Claude Codeからプロンプトだけでインフラ操作が可能
  • GUIで10分かかるデプロイ作業が、プロンプト一発で4分に

Coolifyのインストール#

第1回でCoolifyの選定理由を書きました。ここからは実際にインストールして使い始めます。

必要な環境#

項目要件
OSUbuntu 22.04/24.04(推奨)、Debian、CentOS等
CPU2コア以上
RAM4GB以上(実用的には8GB推奨)
ストレージ20GB以上の空き容量

Dockerが入っていなくても、インストールスクリプトが自動で入れてくれます。

インストール手順#

公式のインストールスクリプトを実行するだけ。

Terminal window
curl -fsSL https://cdn.coollabs.io/coolify/install.sh | bash
ステップ内容所要時間
1Docker自動インストール(未導入の場合)1〜2分
2CoolifyのコンテナイメージをPull2〜3分
3管理UI(ポート8000)を起動30秒
4Traefik(リバースプロキシ)を起動30秒
合計約5分

初回セットアップ#

ブラウザで http://サーバIP:8000 にアクセス。初期登録画面でメールアドレスとパスワードを設定したら、もう使えます。サーバのリソース(CPU/RAM/ディスク)は自動検出。

Coolifyのダッシュボード。プロジェクト一覧とサーバー情報が表示されている

自宅サーバで外部公開する場合はCloudflare Tunnelを使うのが一番簡単で安全です。詳細は第4回で書きます。

ワイルドカードDNSの設定#

Coolifyでは myapp.teraren.comapi.teraren.com のようにサービスごとにサブドメインを割り当てる運用になります。サービスを追加するたびにDNSレコードを手動で追加するのは面倒なので、ワイルドカードDNSを設定しておきます。

CloudflareのDNS設定画面で、以下のレコードを追加。

TypeNameContentProxy
CNAME*Cloudflare TunnelのターゲットまたはサーバIPON

これで *.teraren.com 宛のリクエストがすべてCoolifyサーバに届くようになります。Coolify側のTraefikが、Hostヘッダを見て適切なコンテナにルーティングしてくれる。新しいサービスを追加するときにDNSをいじる必要がなくなるので、MCPでのプロンプト一発デプロイがさらに手軽になります。

GitHub App連携#

CoolifyでPush to Deployを使うには、GitHub Appの連携が必要です。管理UIの Settings > GitHub から「Create GitHub App」をクリックすると、GitHubのOAuth認証フローが始まります。数クリックで完了。

これで特定のリポジトリへのPushをWebhookで受け取って、自動ビルド&デプロイが動くようになります。

まずは手動でデプロイしてみる#

MCPの話に行く前に、GUIでの手動デプロイを体験しておきます。この面倒さを知っておくと、後でMCPの威力がよくわかるので。

GUIでのデプロイ手順#

管理UIでの操作はざっくりこんな流れ。

  1. プロジェクトを作成(名前を入力)
  2. 「New Resource」→「Application」を選択
  3. GitHub Appを選んでリポジトリを検索
  4. リポジトリとブランチを指定
  5. ビルド方式を選択(Nixpacks / Dockerfile / Docker Compose)
  6. ドメインを入力(例: myapp.teraren.com
  7. 環境変数を1つずつ入力。。。
  8. 「Deploy」ボタンを押す
  9. ビルドログを眺めて待つ
  10. SSL証明書が自動発行されてアクセス可能に

Coolifyのアプリケーション設定画面。Name、Build Pack、Domains、Docker Registry、Build設定などをGUIで1つずつ入力していく

1アプリなら問題ない。 でも、これを20個のサービスで繰り返すのは正直しんどい。特に環境変数を1つずつGUIに入力するのが面倒。DB接続文字列、APIキー、シークレット。。。コピペミスも怖い。

ここで「もうちょっと楽にならないかな」と思ったところで、MCPの出番です。

MCPとは#

MCP(Model Context Protocol)Anthropicが2024年末に発表した標準プロトコル。AIモデルが外部のツールやサービスを直接操作するための共通規格です。

従来: 人間がAIに質問 → AIが回答 → 人間が手動でコマンド実行
MCP: 人間がAIに指示 → AIがMCP経由でツールを自動実行 → 結果を報告

MCPは「サーバー」と「クライアント」の2層構造。

コンポーネント役割
MCPサーバー特定のサービスを操作するためのAPICoolify MCP、GitHub MCP、Slack MCP
MCPクライアントMCPサーバーを呼び出すAI側Claude Code、Claude Desktop、Cursor

Claude Codeは複数のMCPサーバーに同時接続できるので、「GitHubでリポジトリ作成 → Coolifyでデプロイ → Slackで通知」みたいな連携もプロンプト一発で可能。MCPサーバーはCoolify以外にもAWSCloudflareGitHubなど増え続けています。

Coolify MCPサーバーの導入#

必要なもの#

項目内容
Coolifyインストール済み
Claude Code最新版
API TokenCoolifyの Settings > API Keys から生成

設定手順#

Claude Codeの claude mcp add コマンド一発で追加できます。

Terminal window
claude mcp add coolify \
-e COOLIFY_URL=https://coolify.your-domain.com \
-e COOLIFY_TOKEN=your-api-token-here \
-- npx -y @coolify-community/coolify-mcp@latest

これで ~/.claude/settings.json に自動で追加されます。設定ファイルを手動で編集する必要はありません。Claude Codeを再起動すれば、もうCoolifyのAPIが使えます。

動作確認#

Coolifyに接続して、現在のサーバーとプロジェクト一覧を教えて。

これだけで list_serverslist_projects が自動的に呼ばれて、結果を表形式で返してくれます。curlを打つ必要なし。

実践例1:プロンプトだけでWordPressを立ち上げる#

まずはシンプルな例から。WordPressをプロンプトだけで構築して公開する。DB作成からドメイン設定、テーマ導入まで全部MCPでやります。

会話ログ(要約)#

実際にClaude Codeとやり取りした流れです。

私: CoolifyでWordPressを立ち上げて。
プロジェクト名は wordpress-demo、
ドメインは wordpress-demo.teraren.com で。
Claude Code: まずプロジェクトを作成します。
→ [MCP] create_project "wordpress-demo"
Claude Code: MySQLデータベースを作成します。
→ [MCP] create_database(MySQL、wordpressユーザー/DB)
→ 内部接続URL: mysql://wordpress:***@コンテナID:3306/wordpress
Claude Code: WordPressアプリケーションを作成します。
→ [MCP] create_application(Dockerイメージ: wordpress:latest)
→ [MCP] update_application(ドメイン設定)
Claude Code: DB接続用の環境変数を設定します。
→ [MCP] env_vars × 4
WORDPRESS_DB_HOST, WORDPRESS_DB_USER,
WORDPRESS_DB_PASSWORD, WORDPRESS_DB_NAME
Claude Code: デプロイを開始します。
→ [MCP] deploy
→ ✓ WordPress初期画面が表示されました。

ここまででプロジェクト作成→DB作成→アプリ作成→環境変数設定→デプロイが完了。所要時間は約4分。さっきGUIで10ステップかけてやった作業が、プロンプト1回で終わった。

デフォルトテーマ(Twenty Twenty-Five)のWordPress。Hello world!の記事だけが表示されている

テーマ設定や初期構成もAIに丸投げ#

WordPressが立ち上がったけど、デフォルトテーマだと味気ない。車メディアサイトを作りたいので、ここからさらにプロンプトで指示。

私: 車メディアサイトにしたい。派手な車のテーマを入れて、
日本語設定にして、車関連の記事を5本入れておいて。
サイト名は「Car Media Demo」で。
Claude Code: WordPressコンテナ内でWP-CLIを実行します。
$ docker exec ... wp core install \
--url=wordpress-demo.teraren.com \
--title="Car Media Demo" --locale=ja
$ docker exec ... wp theme install automobile-car-shop --activate
$ docker exec ... wp option update blogdescription \
"最新の車ニュースとレビュー"
$ docker exec ... wp post create \
--post_title="2026年版 国産スポーツカー比較ガイド" \
--post_status=publish
$ docker exec ... wp post create \
--post_title="電気自動車の充電インフラ最前線" \
--post_status=publish
$ docker exec ... wp post create \
--post_title="ポルシェ 911 GT3 RS 試乗レビュー" \
--post_status=publish
$ docker exec ... wp post create \
--post_title="ヘッドライトの黄ばみをDIYで復活させる方法" \
--post_status=publish
$ docker exec ... wp post create \
--post_title="新型アルファード vs ヴェルファイア 2026年モデル" \
--post_status=publish

Automobile Car Shopテーマを適用した車メディアサイト。ダークなヘッダーに車の画像、「Designed For Driving Pleasure」のヒーローセクション、スペック表示が映える

wordpress-demo.teraren.com を開いたら、車ディーラー風のダークテーマが適用されたサイトが動いている。DB作成からテーマ導入・記事5本投入まで、ターミナルから一歩も出ていない。

Coolifyのプロジェクト一覧にwordpress-demoが追加されている

この例のポイントは、MCPだけでなくDocker execコマンドも組み合わせているところ。Claude Codeは「MCPでインフラ操作 → シェルでアプリ内操作」を自然に切り替えてくれる。人間が「次はWP-CLIで…」と考える必要すらない。

v0→Vercel との対比#

v0→Vercelが「バイブコーディング→即デプロイ」の神ワークフローとして知られていますが、Claude Code→Coolifyでも同じことができる。しかもリソース無制限、月額$0。

観点v0 → VercelClaude Code → Coolify
コード生成v0独自のUI生成既存コードベースに統合
デプロイ先Vercel(クラウド)Coolify(セルフホスト)
コスト従量課金$0
複雑な機能制限あり制限なし

v0は「ゼロから作る」特化。Claude Codeは「既存のものを理解して拡張する」特化。まぁ両方使えばいい。

実践例2:develop環境をプロンプト一発で複製#

トライアスロン大会結果の分析サービスのdevelop環境を作った例。本番環境の構成をそのままコピーして、ブランチだけ変えてデプロイする。

私: ai-triリポジトリの develop ブランチをCoolifyにデプロイして。
ドメインは develop.ai-triathlon-result.teraren.com で。
環境変数は本番環境からコピーして。
Claude Code:
→ [MCP] list_projects → ai-triプロジェクトを発見
→ [MCP] create_application(developブランチ指定)
→ [MCP] get_env_vars(本番から取得)
→ [MCP] bulk_env_update(developに設定)
→ [MCP] update_application(ドメイン設定)
→ [MCP] deploy
→ ✓ develop.ai-triathlon-result.teraren.com でアクセス可能

Coolifyのデプロイ履歴。ai-tri-productionの4回のデプロイが全てSuccessで表示されている。Webhook経由やAPI経由のデプロイが混在している

本番の環境変数を自動でコピーしてくれるのが地味に便利。手動だと環境変数のコピペミスが一番怖いところ。

実践例3:Zabbix環境を丸投げ構築#

Zabbix(監視システム)をCoolifyに載せた例。Server + Web + DB の複合構成で、手動だとコンテナ間の接続設定が面倒なやつ。

私: ZabbixをCoolifyに構築して。
ドメインは zabbix.teraren.com で。
Claude Code:
→ [MCP] create_project "zabbix"
→ [MCP] create_database(MariaDB)
→ [MCP] create_application × 2(Server, Web)
→ 環境変数にDB接続情報を自動設定(10個以上)
→ [MCP] update_application でドメイン設定
→ [MCP] deploy × 2
→ ✓ zabbix.teraren.com でアクセス可能

すごいのは、コンテナ間の接続設定を全部自動でやってくれるところ。Zabbix ServerのDB接続文字列、Zabbix WebからServerへの接続先、ポート設定。。。手動だと環境変数を10個以上、コピペミスなく設定する必要がある。AIに任せれば一瞬で終わるし、ミスもない。

手動でやったら1時間以上かかりそうな作業が、約10分で完了

実践例4:MariaDBチューニング#

この件は 「Claude Codeでプロンプト1発、MariaDBのメモリ使用量を400MB→150MBに削減した話」 に詳しく書いています。

項目BeforeAfter
メモリ使用量403.5 MiB~150 MiB
削減率-63%削減
作業時間数時間(手動調査)5分(プロンプト3回)

MCP経由で SHOW VARIABLES / SHOW GLOBAL STATUS を取得→分析→チューニングプラン作成→設定適用→再起動まで一気通貫。Plan Modeで計画を見せてもらってから実行に移したので安心感がありました。

プロンプト設計のコツ#

MCPでインフラ操作するとき、いくつかコツがあります。

文脈を具体的に伝える。 「新しい環境を作って」ではなく「ai-triプロジェクトの本番と同じ構成でdevelop環境を作って」。プロジェクト名、リポジトリ名、ブランチ名を明示する。

Plan Modeを使う。 インフラ操作は影響範囲が大きいので、Claude CodeのPlan Modeで計画を立てさせてから実行する。DB再起動みたいな影響のある操作を勝手にやられると怖いので。

段階的に進める。 「全部まとめてやって」より「まず現在の構成を確認して」→「新しいアプリを作成して(まだデプロイしない)」→「環境変数を設定して」と段階的に指示した方が、トラブルシューティングが楽。

まとめ#

タスクGUIで手動Claude Code + MCP
WordPress構築(DB+テーマ込み)15分4分(プロンプト2回)
develop環境の複製10分(ポチポチ)4分(プロンプト一発)
Zabbix移行(複合構成)1時間以上約10分
MariaDBチューニング数時間5分

GUIでポチポチやっていた作業がプロンプト一発で終わる。やらない理由はありません。

余談:TerraformでもAnsibleでもなくMCPだった理由#

「インフラ自動化ならTerraformやAnsibleがあるじゃん」と思うかもしれない。実際、Coolifyに移行する前にTerraformを検討しました。

でも、個人で10〜30個のサービスを運用する規模に、Terraformの .tf ファイルを書いて plan して apply するワークフローはオーバーキル。状態管理のバックエンド(S3とか)も用意しないといけないし、HCL(Terraformの設定言語)の学習コストもある。Ansibleも同様で、playbookを書いてメンテナンスする手間が本末転倒。

MCPが良いのは、自動化のためのコードを書かなくていいところ。Terraformは「インフラをコードで管理する」思想だけど、MCPは「インフラをAIに口頭で頼む」思想。コードの管理コストがゼロ。

もちろん、大規模なチームでGitOps的にインフラを管理するならTerraformの方が向いている。でも個人開発者が自宅サーバで20個のサービスを回すなら、MCPの方が圧倒的に手軽。

面白いのは、MCPサーバーの実装が思ったよりシンプルなこと。Coolify MCPサーバーのソースコードを見ると、やっていることはCoolifyのREST APIをラップしているだけ。MCPの仕様に沿ってツール定義を書いて、APIを叩いて結果を返す。つまりMCPはAPI設定の簡略化レイヤーであって、本質はREST APIの存在そのもの。

MCPがなくても、REST APIがあればAIエージェントは直接APIを叩ける。MCPはセットアップを楽にしてくれるけど、コンテキストウィンドウを圧迫するデメリットもある(接続したツール定義がすべてトークンを消費する)。大事なのはAPI-firstであることで、MCPはあくまでおまけ。この話は第5回で詳しく書きます。

シリーズ記事#

  1. Vercel月額$42→自宅サーバ月額$0。Coolifyで個人サービス基盤を作った話
  2. Coolifyインストールから「プロンプトでデプロイ」まで:Claude Code MCP実践(この記事)
  3. Coolifyハンズオン:Hono・Go・Railsを実際にデプロイしてみる
  4. Cloudflare Tunnel×Coolify:自宅サーバを安全に外部公開する
  5. API-firstなインフラが生き残る:LLM時代のセルフホスト戦略
  6. ZabbixでDockerコンテナをリソース監視する:Coolify環境の可視化
  7. Coolify環境のバックアップ戦略:6つのDBを自動ダンプ+復旧手順
  8. Coolify環境のログ管理と障害対応:Docker + Zabbix + Discordで運用を回す
Coolifyインストールから「プロンプトでデプロイ」まで:Claude Code MCP実践
https://blog.teraren.com/posts/coolify-claude-code-mcp/
作者
Yuki Matsukura
公開日
2026-03-14
ライセンス
CC BY-NC-SA 4.0
この記事が役に立ったら
GitHub Sponsorsで応援できます

コメント