市民になる
Platform City では、申請フォームの入力や管理者の承認待ちは不要です。この章では、AI エージェントへの MCP サーバーの設定から、市民登録、GitLab への初回ログインまでを順に進めます。
準備するもの
- MCP に対応した AI エージェント: Claude Code、Codex、OpenCode、Kilo など
- メールに記載されたクーポンコード: オンボーディングに必要です。現地参加チケットを申し込んだタイミングにより、クーポンコードが記載されたメールが異なります
- Google または GitHub のアカウント: GitLab へのログインに使います。ログインは SSO(Google や GitHub のアカウントでそのまま GitLab に入る仕組み)で行います。Gmail の
+付きアドレス(name+tag@gmail.comの形)は使えません - そのアカウントのメールが受信できること: GitLab から 2 通届きます
- glab コマンド(GitLab CLI): エージェントがコードを手元にコピー(clone)したり、変更の取り込み申請(MR)を出したりするのに使います。無ければ手順の途中で入れます
クーポンコードは、チケットを購入してから 1 週間以上経過している方には、クーポンコードが記載されたメールをお送りしています。直近にチケットを購入された方は、同じメールが届いているか、申込完了メールの下部に記載されています。メールが見当たらない場合は 壊れたときの直し方:どうしても解決しないとき の問い合わせ先へご連絡ください。
username を 1 つ決めておいてください。半角英小文字・数字・ハイフンのみ、先頭と末尾は英数字、40 文字以内です。この名前があなた専用の環境(テナント)の名前になり、Kubernetes 上の作業スペース(namespace)、公開 URL のサブドメイン、GitLab のパスにそのまま使われます。一度決めたら変えられません。
エージェントを繋ぐ
Platform City におけるすべての操作は、Model Context Protocol(MCP)を通じて行われます。テナントの作成やアプリケーションの追加、デプロイ状態の確認に至るまで、あらゆる指示は使い慣れたご自身の AI エージェントから実行します(Map や Home 画面は状況を可視化するためのビューアであり、操作の窓口は MCP に集約されています)。
接続先情報
Platform City の MCP サーバーは会場向けに集中管理されており、参加者全員が共通のエンドポイントへ接続します。
https://mcp.core.paas.jp/mcp
接続方式は Streamable HTTP です。ローカル環境で MCP サーバーを起動する必要はありません。ログイン済みの場合は Home 画面からも接続先 URL をコピーできます。
お使いのエージェントの手順を1つ選んで設定してください。設定後は、このページの「エージェントから onboard を呼び出す」へ進みます。
Claude Code
ターミナルで次のコマンドを実行します。--scope user を付けると、アプリごとに作業フォルダを変えても同じ接続設定を使えます。
claude mcp add --transport http --scope user platform-city https://mcp.core.paas.jp/mcp
claude mcp get platform-city
Connected と表示されれば接続完了です。Claude Code を開き直し、チャット欄で /mcp を実行すると、platform-city の接続状態とツールを確認できます。詳しくは Claude Code の公式 MCP ガイド を参照してください。
Codex
Codex CLI をお使いの場合は、ターミナルで次のコマンドを実行します。
codex mcp add platform-city --url https://mcp.core.paas.jp/mcp
codex mcp list
一覧に platform-city が追加されたことを確認してください。設定をファイルで追加する場合は、~/.codex/config.toml に次の内容を追記しても同じ設定になります。CLI で追加済みなら追記は不要です。
[mcp_servers.platform-city]
url = "https://mcp.core.paas.jp/mcp"
Codex CLI と IDE 拡張はこの設定を共有します。CLI は開き直してチャット欄で /mcp を実行し、platform-city のツールが見えることを確認してください。IDE 拡張では設定の MCP servers から接続状態を確認し、設定変更後に拡張を再起動します。詳しくは Codex の公式 MCP ガイド を参照してください。
OpenCode
アプリの作業フォルダで、ターミナルから次のコマンドを実行します。
opencode mcp add platform-city --url https://mcp.core.paas.jp/mcp
opencode mcp list
保存先を選ぶ画面が出た場合は、複数のアプリで使えるグローバル設定を選びます。platform-city が接続済みと表示されれば準備完了です。OpenCode を開き直して使ってください。
--url を受け付けないバージョンでは、opencode mcp add を実行し、対話形式でサーバー名を platform-city、接続方式を Remote、URL を https://mcp.core.paas.jp/mcp に設定してください。詳しくは OpenCode の公式 MCP ガイド と CLI の設定手順 を参照してください。
Kilo
VS Code 拡張をお使いの場合は、Kilo の設定を開き、Agent Behaviour → MCP Servers(バージョンによっては Settings → MCP)で Add Server を選びます。
| 項目 | 設定する値 |
|---|---|
| サーバー名 | platform-city |
| 接続方式 | Remote (HTTP) |
| URL | https://mcp.core.paas.jp/mcp |
保存後、platform-city を有効にし、接続状態とツール一覧を確認してください。
CLI をお使いの場合は、ターミナルで次のコマンドを実行します。
kilo mcp add platform-city --url https://mcp.core.paas.jp/mcp
kilo mcp list
platform-city が接続済みと表示されれば準備完了です。Kilo を開き直して使ってください。
ファイルで設定する場合は、~/.config/kilo/kilo.jsonc の mcp に次の接続先を追加できます。既存の設定がある場合は、platform-city の項目を追加してください。画面や CLI で追加済みなら、同じサーバーを重ねて追加する必要はありません。
{
"mcp": {
"platform-city": {
"type": "remote",
"url": "https://mcp.core.paas.jp/mcp",
"enabled": true
}
}
}
詳しくは Kilo の公式 MCP ガイド と CLI のコマンド一覧 を参照してください。
接続を確認する
接続できたら、エージェントに「Platform City の MCP ツールを確認して」と伝えてください。onboard が利用可能になっていれば、次の市民登録へ進めます。ツールが見つからない場合は、上の手順で platform-city の接続状態を確認し、URL が https://mcp.core.paas.jp/mcp になっているか、有効な設定として読み込まれているかを確認してください。
エージェントから onboard を呼び出す
MCP サーバーへの接続が完了したら、エージェントに対して次のようにオンボーディングを指示します。
Platform City にオンボーディングして。username は taro-yamada、email は taro@example.com、coupon_code は <メールに記載されたクーポンコード>
username には半角英小文字、数字、ハイフンのみが使用できます(先頭と末尾は英数字、40 文字以内)。この名前があなたのテナント識別子となり、公開 URL(https://<username>.city.paas.jp/)のサブドメインとしても使われます。後から変更することはできません。
email には、後ほど GitLab にログインする際に使用する Google または GitHub アカウントのメールアドレスを指定してください。なお、Gmail の + 付きエイリアスは使用できません(SSO 連携時に + が除去されて返ってくる場合があり、招待情報と不整合を起こす原因となるためです)。
coupon_code は 準備するもの で確認したメールに記載されたコードを指定してください。大文字・小文字は区別されます。COUPON_REQUIRED が返った場合はコードを追加し、COUPON_INVALID の場合はメールの最新のコードを確認して再試行してください。それでも通らない場合は どうしても解決しないとき の問い合わせ先へご連絡ください。
エージェントが onboard ツールを呼び、実行から 1〜2 分ほどで次のものが揃います。
- GitLab 上のあなた専用グループ
platform-city/citizen/<username>と、最初のプロジェクトself-intro-<username>(自己紹介アプリ) - Kubernetes 上の作業スペース(namespace)と、その中だけで作業できる権限、リソース上限
- 公開 URL
https://<username>.city.paas.jp/ - このテナント専用の API トークン(パスワードのようなものです)
- アプリのデータ保存に使える、テナント専用の DynamoDB テーブル(使い方)
処理完了時に onboard ツールから返されるレスポンスの next_steps に、GitLab へのログイン方法、プロジェクトの URL、glab の設定と clone コマンドまで、その後に進めるべき手順が案内されています。基本はこの案内に従えば進められます。
**API トークンは onboard の応答に 1 回しか出ません。** logs ツールなどで使うので、エージェントのセッションを閉じる前にどこかに控えておいてください。再発行は運営にしかできません。
同じ username でもう一度 onboard を呼ぶと、TENANT_ALREADY_EXISTS(409)というエラーが返ります。既存のテナントには一切書き込まない作りなので、二重に呼んでも壊れることはありません。
GitLab への初回ログインと注意点
オンボーディングを実行すると、登録したメールアドレス宛に GitLab からメールが届きます。安全かつスムーズにサインインするため、以下の手順に従って進めてください。
- 招待メールのリンクは開かない: 最初に「You've been invited...」という招待メールが届きますが、メール内のリンクは開かないでください。このリンクを開くと通常のパスワードログイン画面に誘導されてしまい、SSO 連携が正常に進みません。
- Group SSO からログインする: エージェントの
next_stepsに記載されている Group SSO 専用の URL をブラウザで開きます。ログイン画面で Google または GitHub を選択し、onboard時に指定したメールアドレスのアカウントでサインインしてください。GitLab アカウントをお持ちでない場合も、この初回 SSO 時に自動的にアカウントが作成されます。 - 確認メールのリンクを開く: サインイン後に届く「Confirmation instructions」という確認メールについては、メール内の確認リンクを必ず開いてください。メールアドレスの確認が完了するまではプロジェクトが閲覧専用(Read-only)として表示されますが、これは不具合ではなく GitLab のセキュリティ仕様です。
※ すでに同一メールアドレスの GitLab.com アカウントをお持ちの場合は、手順 2 のログイン途中で「Allow platform-city to sign you in?」という連携許可画面が表示されます。「Authorize」をクリックして許可すればログイン完了となり、この場合は手順 3 の確認メールは送られません。
ログインが完了すると、https://gitlab.com/platform-city/citizen/<username>/self-intro-<username> を開いたときに、自分のプロジェクトが Maintainer 権限で見えるようになります。確認メールを開く前は閲覧のみに見えますが、前述のとおり GitLab の仕様であり、壊れているわけではありません。
glab を準備する
glab(GitLab CLI)は、エージェントがプロジェクトを clone したり MR を作成したりするときに使います。ターミナルで glab version を実行して、まだ入っていなければ next_steps に載っている OS 別のインストール手順に従ってください。
インストール後は、ブラウザで認可するだけで glab から GitLab にアクセスできるようになります。手順 2 でログイン済みのブラウザなら、追加のログインは不要です。
glab auth login --hostname gitlab.com --web
続けて next_steps に載っている clone コマンドでプロジェクトを手元に取得します。環境によっては glab auth login の前に glab config set client_id ... の設定が必要な場合があるので、コマンドの並びは next_steps の案内を正としてください。
Home で進捗状況を確認する
Home 画面にログインすると、テナントの払い出し状況、初期セットアップの進捗、そして最初の建物が Map 上に無事建設されたかどうかを一元的に確認できます。onboard の直後はチェックリストの「市民登録(テナント開設)」にチェックが付き、少し待つと「テナント環境のセットアップ完了」にもチェックが付きます。
「テナント環境のセットアップ完了」にチェックが付いた後も、GitLab 側でテンプレートの取り込みが続いていることがあります。その間は glab repo clone が「A repository for this project does not exist yet」で失敗し、プロジェクトのページも空に見えます。壊れたわけではないので、数分待ってからもう一度 clone してください。10 分以上たっても空のままなら、テナント名(username)を添えて どうしても解決しないとき の窓口へお知らせください。なお、この段階で status ツールを呼ぶと「デプロイ履歴がありません」(NOT_FOUND)が返りますが、まだ 1 回もデプロイしていないので正常です。
Map の自己紹介区画には、あなたの名前札が付いた予定地(更地と工事フェンス)が現れます。テナントの準備が終わると建物は建ちますが、まだ中身のコンテナイメージが無いので灯りは付きません。この段階で黒い煙や赤いマーカー(建物の上の状態表示)が出ていることがありますが、壊れたわけではなく「まだ 1 回もデプロイされていない」だけです。次の章でマージすると灯りが入ります。
なお、Home 画面は状況を確認するためのダッシュボードであり、画面上から直接テナントを作成する機能は提供していません。テナントの作成は必ず MCP の onboard ツールから行います。
次は最初の建物を建てる
ここまでで、次の 3 つが揃っています。
- エージェントから Platform City のツールが使えて、あなたのテナントが払い出されている
- GitLab に SSO でログインでき、
self-intro-<username>プロジェクトが Maintainer 権限で見えている glabでプロジェクトを手元に clone できている
Map の自己紹介区画にはあなたの予定地が出ていますが、まだ灯りは付いていません。次の章 最初の建物を建てる で、clone した self-intro を書き換えて MR を出し、AI レビューを通してマージすると、公開 URL にページが出て建物に灯りがともります。
これより下は、市民になったあとに参照するリファレンスです。初めての方は先に次の章へ進んでください。
提供されているツール一覧
接続が完了すると、エージェントから以下のツール群が利用可能になります。
| ツール | 説明 |
|---|---|
onboard | テナントを作成し市民登録を行う(初回のみ) |
create_app | 新しいアプリケーションを追加する |
deploy | 新しいコンテナイメージをクラスタへ配備する |
status | 直近のデプロイの進行状況や結果を確認する |
logs | アプリのログや起動時の診断情報を確認する |
register_api | 自身が開発した API を街のカタログに登録する |
discover_apis | 他の参加者が公開している API を探索する |
アプリケーションを追加する
すでに市民になっている場合は、Home で現在の環境状態を確認しつつ、新しいアプリケーションを追加したいときに create_app を呼び出します。
Platform City に theme: game で my-game というアプリを作って。tenant は taro-yamada
アプリケーションのテーマには game(手軽に遊べるミニゲーム)、oshi(推し登壇者トリビュート)、food(グルメ掲示板)、api(API・Cloud Native 実験)、meet(参加者交流)などを指定できます。テーマによって建物が建つ区画と開発の自由度が決まります。1つのテナントにつき最大 10 個までアプリを作成可能です(テナント全体のリソース quota は目安6アプリ分のため、多数のアプリを立てる場合は軽量な構成にしてください。上限や quota を超えて作成しようとすると、上限到達を知らせるエラーメッセージとともに、適切な対処方法が案内されます)。作成したアプリの公開 URL は、2つ目以降 https://<username>.city.paas.jp/<アプリ名>/ というパス形式になります。
ゲームのスコアや投稿などの保存には、自動で用意される DynamoDB を使えます。同じテナントのアプリで1テーブルを共有し、サーバー側から接続します。AWS アカウントやアクセスキーの準備は不要です。実装方法は DynamoDB にデータを保存する を参照してください。
機械可読なエラーと自律的な修復
ツールが何らかの理由で失敗した場合でも、曖昧な自然言語のエラーメッセージだけが返ってくることはありません。失敗が発生した具体的なフェーズ、期待されていた条件と実際の結果、そして次に取るべき推奨アクション(next_steps)が構造化されたデータとして返されます。
そのため、人間がいちいちログを解析して仲裁しなくても、エージェント自身がエラー内容を正確に理解して修正ループを自律的に回せるようになっています。
作成したアプリの開発は、変えたい内容を Issue に書いてエージェントに「Issue #N を実装して」と伝える流れで進めます。詳しくは Issue から建物を育てる を参照してください。
なお、カンファレンスの登壇者を応援する「推しアプリ」を作成する場合は、作成前に対象者を決めておく必要があります。専用の区画に建てるためのテーマ oshi も用意されています。詳しくは 推しを応援する をご参照ください。会場周辺の店を紹介するアプリは グルメ掲示板に店を載せる にまとめています。
API の公開やアプリ間連携は API・Cloud Native 実験区画に建てる を参照してください。