Platform City のハンズオンガイドです。AI エージェントに MCP サーバーを登録するところから、オンボーディング、GitLab への初回ログイン、自己紹介ページの編集と AI レビュー、マージ、そして街に自分の建物が建って灯りがともるまでを、各ステップの「やること」と「どうなるか」で追います。

Platform City Getting Started

著者: Ryosuke Kawamura
Event promotionPEK2026カンファレンス

Platform City チームの川村です。

皆さまお待たせいたしました! 本日より、Platform Engineering Kaigi 2026 に現地参加いただく皆様向けに、メインコンテンツ「Platform City」をテストリリースします!

Platform City は、参加者の皆さまが手元の AI エージェントでアプリを開発し、実際に Kubernetes クラスタにデプロイして、仮想都市に自分の建物を建てる実証実験です。ご自身のエージェントに一言頼めば 1〜2 分であなた専用の環境が払い出されます。コードをpushすれば自動でデプロイされ、実際に街に 1 棟の建物が建ちます。たくさんの参加者の皆さまが同時に建てて、会場に映る街を一緒に育てていく。そういうコンテンツです。

しかも、当日を待つ必要はありません。今日から、自分の建物を建てられます。

この記事は皆さまに Platform City を体験していただくための Getting Started です。

手元の AI エージェントに MCP サーバーを登録するところから始めて、自分の建物が建ち、CityMap 上で灯りがともるまでを実際に体験してみましょう!各ステップは「やること」と「どうなるか」のセットで書いてあるので、いま自分がどこにいて、次に何が起きるかを確認しながら進めてください。

なお、まだチケットを購入されていない方は、以下よりご購入ください。

FindyConference

テストリリースにあたっての注意点

  • カンファレンス開催当日までアップデートが入る場合があります
  • City Mapのいいね (投票機能)は開催日にリセットされます
  • デプロイされたアプリはリセットしません
    • 当日に向けて、作り込んでいただいても大丈夫です。やむを得ぬ事情を除いてはリセットしません
  • 皆さまのリポジトリの配布元である、GitLabのテンプレートに変更が入る可能性があります
    • 破壊的な変更が入る場合は、別途ご案内します

準備するもの

  • MCP に対応した AI エージェント: Claude Code、Codex、Cursor など。
  • メールに記載されたクーポンコード: オンボーディングに必要です。現地参加チケットを申込されたタイミングにより、クーポンコードが記載されたメールが異なります。
    • チケットを購入してから1週間以上経過している方: クーポンコードが記載されたメールをお送りしています
    • 直近にチケットを購入された方: 上記と同様か、申込完了メールの下部に記載されています。
  • Google または GitHub のアカウント: GitLab へのログインに使います。ログインは SSO(Google や GitHub のアカウントでそのまま GitLab に入る仕組み)で行います。Gmail の + 付きアドレス([email protected] の形)は使えません(SSO 側で + 以降が落ちて、招待と不一致になります)
  • そのアカウントのメールが受信できること: GitLab から2通届きます
  • glabコマンド(GitLab CLI): エージェントがコードを手元にコピー(clone)したり、変更の取り込み申請(MR)を出したりするのに使います。無ければ手順の途中で入れます

username を1つ決めておいてください。英小文字・数字・ハイフンのみ、40 文字以内です。この名前が、あなた専用の環境=テナントの名前になります。Kubernetes 上の作業スペース(namespace)、公開 URL のサブドメイン、GitLab のパスにそのまま使われ、一度決めたら変えられません。

登場するもの

この記事では、いくつかのサービスと画面を行き来します。先に全体像だけ押さえておいてください。

登場するもの何をするところか誰が触るか
AI エージェントあなたの手元で動く Claude Code や Cursor など。この記事の操作はほぼ全部ここから指示します人間が話しかける
Platform City の MCP サーバーエージェントに Platform City のツールを与える窓口。https://mcp.core.paas.jp/mcp を1回登録するだけで、onboard などが使えるようになりますエージェント
GitLab(gitlab.com)コードの置き場所。あなた専用のグループとプロジェクト(コードの置き場所)が払い出されます。main(本番用の枝)へ直接 push することは禁止で、変更は MR(マージリクエスト。GitHub でいう Pull Request の GitLab 版)経由です初回ログインだけ人間、あとはエージェント
GitLab DuoGitLab の AI アシスタント。MR のレビュアーに @GitLabDuo を指定すると 1〜2 分でコメントが付きます。レビューを受けないとマージできない仕組みですエージェントが指定
CI パイプラインコードを検査してデプロイまで自動で進める仕組み。MR 時は verify-ai-review、マージ後は lint → test → build → イメージ(アプリを箱詰めした実行パッケージ)の push → デプロイ。最初から用意されていて、参加者が構築する必要はありません自動
Platform City 公開 URLhttps://<username>.city.paas.jp/。マージして数分で、ここにあなたのアプリが出ます人間がブラウザで見る
CityMaphttps://citymap.core.paas.jp/。街の 3D マップ。アプリが 1 棟の建物になり、状態が足場・灯り・煙で見えます人間がブラウザで見る
Platform City Homehttps://citymap.core.paas.jp/home。ログインすると自分のテナントの進捗チェックリストと、自分のアプリの状態が見えます。見るだけで、ここから操作はできません人間がブラウザで見る
City Guidehttps://citymap.core.paas.jp/guide/。Platform City の公式ドキュメント。詰まったときと、次の区画に行くときに読みます。エージェントに URL ごと渡せます人間もエージェントも

Step 1. エージェントに MCP サーバーを登録する

やること

お使いのエージェントの MCP 設定に、Platform City の MCP サーバーを設定します。

https://mcp.core.paas.jp/mcp

Claude Code ならこうです。

claude mcp add --transport http --scope user platform-city https://mcp.core.paas.jp/mcp
claude mcp get platform-city

--scope user を付けておくと、作業フォルダを変えても同じ接続設定が使えます。2 行目で Connected と出れば接続できています。

Codex、OpenCode、Kilo の手順は City Guide の「市民になる」(https://citymap.core.paas.jp/guide/onboarding)にコマンド付きで載っています。Cursor など設定ファイルで MCP を登録するエージェントでは、mcpServers に url としてこの URLを足してください。

どうなるか

エージェントから Platform City のツールが見えるようになります。onboard、create_app、deploy、status、logs、register_api、discover_apis の7つです。この記事で使うのは onboard と、困ったときの status / logs だけです。

Step 2. オンボーディングする

やること

エージェントにこう話しかけます。username、email、coupon_code を自分のものに置き換えてください。

Platform City にオンボーディングして。username は taro-yamada、email は [email protected]、coupon_code は <参加案内メールのクーポンコード>

email は、次のステップで GitLab にログインする Google または GitHub アカウントのアドレスです。ここが一致していないと、GitLab の招待がそのアカウントに届きません。

coupon_code はメールで配布されたコードです。大文字・小文字はそのまま入れてください。コードが違うと COUPON_INVALID、入れ忘れると COUPON_REQUIRED というエラーが返るので、メールのコードを確認して言い直せば大丈夫です。

どうなるか

エージェントが onboard ツールを呼び、1〜2分で以下が揃います。

  • GitLab 上のあなた専用グループ platform-city/citizen/<username> と、最初のプロジェクト self-intro-<username>
  • Kubernetes 上の作業スペース(namespace)と、その中だけで作業できる権限、リソース上限
  • 公開 URL https://<username>.city.paas.jp/
  • このテナント専用の API トークン(あなた専用の合言葉。パスワードのようなものです)

オンボーディングが終わると、エージェントが「次にやること」を案内してくれます。GitLab へのログイン方法、プロジェクトの URL、glab の設定と clone コマンドまで含まれているので、基本はその案内に従えば進めます。以降この記事で「オンボーディング後の案内」と書いたら、この案内のことです。

API トークンは応答に1回しか出ません。 logs などで使うので、エージェントのセッションを閉じる前にどこかに控えておいてください。

同じ username でもう一度 onboard を呼ぶと「もうあります」というエラー(409)が返ります。既存のテナントには一切書き込まない作りなので、二重に呼んでも壊れません。

CityMap ではこう見える

https://citymap.core.paas.jp/home にログインすると、チェックリストの「市民登録(テナント開設)」にチェックが付き、少し待つと「テナント環境のセットアップ完了」にも付きます。

自己紹介区画には、あなたの名前札が付いた予定地(更地と工事フェンス)が出ます。テナントの準備が終わると建物は立ちますが、まだ中身のコンテナイメージが無いので灯りは付きません。この段階で黒い煙や赤いマーカー(建物の上の状態表示)が出ていることがありますが、壊れたわけではなく「まだ1回もデプロイされていない」だけです。次の手順でマージすると灯りが入ります。

Step 3. GitLab に初回ログインする

ここだけは人間がブラウザを開きます。SSO の都合で順番が大事なので、オンボーディング後の案内と合わせて読んでください。

やること

  1. GitLab から届く招待メール(“You’ve been invited…”)は開かないでください。リンクを踏むと通常のパスワードログイン画面に落ちて、先に進めません
  2. オンボーディング後の案内に書かれた Group SSO の URL をブラウザで開き、Google または GitHub アカウントでログインします。onboard で指定した email のアカウントを選んでください
  3. ログイン後に届く確認メール(“Confirmation instructions”)のリンクは必ず開いてください

既に同じ email の GitLab.com アカウントを持っている場合は、手順 2 の途中で「Allow platform-city to sign you in?」という画面が出ます。許可すれば完了で、この場合は手順 3 の確認メールは届きません。

どうなるか

https://gitlab.com/platform-city/citizen/<username>/self-intro-<username> を開くと、自分のプロジェクトが Developer 権限で見えます。確認メールを開く前は Guest 相当(閲覧のみ)に見えますが、これは GitLab の仕様で、壊れていません。

プロジェクトには最初から通る CI が入っています。 lint → test → build → イメージの push → デプロイまで構築済みです。参加者は CI を1行も書きませんし、プロジェクト内にある CI の設定ファイルを書き換えても効きません(プロジェクトの外側から固定されています)。

glab をまだ入れていなければ、オンボーディング後の案内にある手順で glab auth login --web まで済ませておきます。ブラウザで SSO ログイン済みなら追加のログインは要りません。

Step 4. 自己紹介を書いて Merge Request(MR) を出す

やること

ここからはエージェントに任せます。たとえばこう頼みます。

self-intro プロジェクトを clone して、index.html を自己紹介ページに書き換えて。
トピックブランチを切って、レビュアーに @GitLabDuo を指定して MR を作って。

自己紹介の中身は自由です。名前、所属、今日聞きたいセッション、一言。テンプレートはトップページ(GET /)で静的な HTML を返すだけの小さなアプリなので、index.html を触れば十分です。

main への直接 push は塞いであるので、必ずトピックブランチ(main と分けた作業用の枝)と MR を経由します。MR を作るときにレビュアーに @GitLabDuo****(GitLab の AI レビュー)を指定するのがポイントで、作成と同時に指定するのが確実です。

どうなるか

MR を作るとパイプラインが走り、その中の 1 工程である verify-ai-review というジョブが失敗します。これは正常です。 「まだ AI レビューを受けていない」ことをパイプラインが検出している状態で、あなたのコードが悪いわけではありません。エージェントがここで「CI が落ちた」と直しに走り始めたら、「レビュー待ちなので次に進んで」と止めてください。

1〜2分で GitLab Duo のレビューコメントが MR に付きます。

Step 5. レビューに対応してマージする

やること

エージェントにそのまま続けてもらいます。

Duo のレビューコメントを確認して、必要なら直して、スレッドを解決して。
verify-ai-review を Retry して、通ったらマージして。

レビューコメントのスレッドを「解決済み」にしないとマージできない設定です。スレッドの解決も verify-ai-review の Retry も API から出来るので、ブラウザは要りません。Retry に新しい push は不要です。

どうなるか

verify-ai-review が緑になり、MR がマージできるようになります。マージすると main のパイプラインが走り、lint → test → build → イメージの push → デプロイが順に進みます。デプロイの実体は「ビルドしたイメージを Platform City 側に渡して、クラスタに配ってもらう」ことで、これも CI がやります。

Step 6. 建物が建ったのを確認する

やること

まず公開 URL を開きます。

https://<username>.city.paas.jp/

次に CityMap(https://citymap.core.paas.jp/)を開きます。上部の検索ボックスに username を入れるか、Home の「自分のアプリ」から「Map で見る」を押すと、カメラが自分の建物まで飛びます。

どうなるか

公開 URL に、さっき書いた自己紹介ページが出ます。

CityMap では、デプロイが進む間、自己紹介区画の自分の建物に足場と黄色いパルスリングが出ます。イメージが配り終わってアプリが起動し、プラットフォームからの生存確認(/healthz)に応え始めると、窓に灯りがともり、マーカーが緑になります。 さらに街の外から公開 URL のトップページ(GET /)を1分に1回開いていて、これも通っていれば緑のままです。

建物をクリックするとカードが開き、区画内の住所(INTRO-1-12 のような形)、公開 URL へのリンク、いいねと応援のボタンが出ます。住所は会場で口に出して伝えられる形にしてあるので、隣の人に「私の建物は INTRO-1-12 だよ」と言えば探してもらえます。

建物の見た目と場所はプラットフォームが決めます。テナント名とアプリ名から計算で一意に決まるので、リロードしても会場スクリーンでも同じ建物が同じ場所に立ちます。自己紹介区画は全員が建てるので、1セルに小さい家が 2×2 で並ぶ密度の高い区画です。

Home の「自分のアプリ」にも self-intro が稼働中として並び、チェックリストは「最初の建物を Map に建設」まで全部埋まっています。ここまで来たら完了です。

灯りが付かないとき

自己紹介区画で詰まるポイントは限られます。

見え方たぶんこれ確認の仕方
予定地のまま何も変わらないマージがまだ、または main のパイプラインが途中で落ちているGitLab のパイプライン画面。lint / test で落ちていればログに理由が出ています
黒煙 + 赤いマーカーアプリが起動していない、またはイメージを取得できていないエージェントに status と logs を呼ばせる(logs には API トークンが要ります)
灯りは付いたが橙のマーカー生存確認(/healthz)は通っているが、街の外からトップページを開くと失敗する建物カードに ProbeHttp404 などの理由が出ます。ブラウザで公開 URL を開いてみてください
MR がマージできないDuo のスレッドが未解決、または verify-ai-review を Retry していないMR のスレッド一覧。解決してから Retry

status は直近のデプロイがどの段階で、どのイメージで、いつ始まっていつ終わったかを返します。logs はいまのログと再起動前のログ、起動に失敗した理由を返します。どちらも失敗したときは、エラーと一緒に「次に何をすべきか」が返ってくるので、エラーの文面をそのままエージェントに渡せば大抵は自分で直します。人間がログを読んで仲裁する必要は、基本的にありません。

なお、煙は 120 秒で自然に細くなります。復旧したわけではないので、状態はマーカーの色で見てください。

次は City Guide を読んでください

自己紹介区画に建物が建ち、灯りがともったら、Platform City の最初のステップは終わりです。オンボーディング、MR、AI レビュー、マージ、デプロイ、街での確認。この流れは他の区画でもまったく同じで、違うのは何を作るかだけです。

2つ目以降のアプリは create_app で作ります。game ならゲーム区画、oshi なら推し登壇者トリビュート区画、food ならグルメ情報区画と、テーマで建つ区画が決まり、1テナント 3 アプリまで建てられます。

区画ごとの要件やテンプレートの中身は当日までに変わる可能性がありますが、City Guideも併せてアップデートしますので、最新の情報はCity Guideをご覧ください。

City Guide は Platform City の公式ドキュメントで、Map と Home の info からも開けます。 同じように導入から記載されていますが、本記事より詳細に紹介されています。時間があれば、ぜひ振り返ってみてください。

  • 使い方: この記事でやったことに加えて、「この街の見方」「推しを応援する」「グルメ掲示板に店を載せる」「壊れたときの直し方」など、さまざまな使い方が記載されています。次の区画に行くなら、まず該当する章を読んでください
  • 思想: なぜエージェントを第一級の利用者にしたのか、なぜ失敗を隠さないのか。作った側の考えです
  • やり切れなかったこと: 選ばなかったことと、その理由。嘆きのリストではなく、割り切りの明文化です

City Guide はエージェントに読ませる前提で書いてあります。次の区画に行くときは、章の URL ごとエージェントに渡してください。

https://citymap.core.paas.jp/guide/oshi を読んで、Platform City に推しアプリを作って。tenant は taro-yamada

ここまで出来たら、City Guide を片手に次の区画にチャレンジしてみましょう。街は建物が増えるほど賑わい、いいねが集まると建物が育ちます。会場スクリーンで自分のビルが塔になるのを見に来てください。

困ったときは

City Guideの 壊れた時の直し方 をご覧ください。 エージェントと一緒にエラー状況を読み解き、修復するためのヒントが記載されています。

また、クーポンコードが通らない、メールが届かないなどがあれば以下のSlackチャンネルにお問い合わせください。

ワークスペース: Platform Engineering Meetup(pfemjp.slack.com) チャンネル: #pek2026-platform-city でお問い合わせください。

Slackへは、以下のリンクより参加いただけます。

Platform City の続報や当日の様子は、公式 X でも発信していきます。ぜひフォローして最新情報をチェックしてください! https://x.com/cnia_pfem(ハッシュタグ: #PEK2026)


Platform Engineering Kaigi 2026

  • 開催日:2026年9月26日(土)
  • 場所:中野セントラルパークカンファレンス
  • 申し込み:FindyConference (一般申し込み、オンラインともにリンク先からの申し込みが必要となります)
  • 問い合わせ:問い合わせフォーム