mcpField
C
create-slack-app

create-slack-app

github.com/slackapi開発161472 回インストール2 日前に更新
リポジトリ

create-slack-app について

create-slack-app は、Bolt を使った Slack アプリやエージェントの作成を支援するスキルです。フレームワークとワークスペースの選択、テンプレートからのプロジェクト作成、ローカル実行を扱い、エージェント用テンプレートではプロバイダーと API キーも設定します。

主な機能

  1. 01bolt-js または bolt-python の選択
  2. 02Slack ワークスペースの設定と確認
  3. 03テンプレートからのプロジェクト作成
  4. 04エージェント用テンプレートの AI プロバイダー選択
  5. 05キーを設定してアプリをローカル実行

活用シーン

  1. 01新しい Bolt Slack アプリの作成
  2. 02テンプレートを使った Slack AI エージェントの構築
  3. 03選択したワークスペースでのアプリテスト

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/slackapi/slack-skills-plugin --skill create-slack-app

インストール後、Claude Code で/create-slack-appを入力して読み込まれたか確認します。

詳細

Slack アプリの作成

Bolt を使用して、開発者が Slack アプリまたはエージェントを作成できるよう支援します。$0 が厳密に bolt-js または bolt-python の場合は、選択されたフレームワークとして扱い、質問を省略します。それ以外の場合(空またはその他の値を含む)は無視し、続行する前に開発者に使用するフレームワークを尋ねます。

このスキルでは、前提条件、認証、インストール先のワークスペースの選択、テンプレートからのプロジェクトのひな形作成、アプリのローカル実行まで、セットアップ全体を順を追って説明します。


ステップ 1:前提条件を確認する

1a. Slack CLI コマンドを検出する

slack:slack-cli スキルの ステップ 1:Slack CLI の検出 を使用して、公開版 Slack CLI がインストールされているか確認し、コマンド名を特定します。フィンガープリントの確認、エイリアスへのフォールバック、インストール手順はすべてこのスキルに記載されています。ここでは重複して説明しないでください。

コマンド名を特定したら、このスキルの以降すべての CLI コマンドで、検出されたコマンド名を使用します。以下ではこれを SLACK_CMD と呼びます。SLACK_CMD が出てくる箇所すべてで、実際に特定したコマンド名に置き換えてください。

1b. CLI のバージョンを確認する

SLACK_CMD version を実行し、バージョンを表示して、続行前にすべてが正常に動作していることを確認します。

1c. 言語ランタイムを確認する
  • $0 が bolt-js の場合:node --version を実行して Node.js がインストールされていることを確認します(v18 以降が必要です)。インストールされていない場合は、brew install node を提案するか、https://nodejs.org を案内します。
  • $0 が bolt-python の場合:python3 --version を実行して Python がインストールされていることを確認します(3.6 以降が必要です)。インストールされていない場合は、brew install python3 を提案するか、https://python.org を案内します。

ステップ 2:Slack CLI で認証する

slack:slack-cli スキルの ステップ 5:認証(slack auth) を使用して、開発者の認証状態を確認し、未認証の場合は SLACK_CMD login を使った認証手順を案内します。

認証が成功したことを確認してから次に進んでください。


ステップ 3:アプリのインストール先を選択する

アプリのインストールには Slack ワークスペースが必要です。利用できる対象は 3 つあり、それぞれ同等ではありません。AskUserQuestion を使って開発者に選択してもらい、次の順で提示します。

対象最適な用途利用開始の条件
開発者サンドボックス(推奨)開発者が今後も開発を続ける予定のあらゆる用途。実ユーザーから隔離された無料の Enterprise Grid 組織で、組織レベルの機能をテストできます。Slack Developer Program アカウントが必要です。登録は無料です。各アカウントで基本的なサンドボックスを作成でき、有料プランや支払い方法は不要です。
無料チーム(第 2 候補)Developer Program への登録が障壁となっている場合に、すぐに始めるための選択肢です。開発者が作成し、所有する無料ワークスペースです。1 ワークスペースあたり 10 個までのアプリという上限があり、Enterprise Grid 組織の機能は利用できません。
既存の本番ワークスペース(最後の手段)アプリから実データや実際の同僚にアクセスする必要がある場合に限ります。通常は管理者の承認が必要で、開発者自身が管理者とは限りません。

続いて、選択に応じた以下のサブステップに進みます。どの対象を選んでも、認証手順はステップ 2 と同じです。/slackauthticket コマンドは開発者が所属するどのワークスペースでも使用できるため、サンドボックス専用のログインはありません。

どのサブステップに進む場合も、対象のワークスペースが存在し、認証済みであることを確認してから次に進んでください。

3a. 開発者用サンドボックス(推奨)

既存のサンドボックスを一覧表示します。認証方法を CLI が尋ねて処理を止めないよう、--team を渡します(チーム ID は SLACK_CMD auth list から取得します)。

SLACK_CMD sandbox list --team <team_id>

開発者が Developer Program アカウントを持っていない場合、サンドボックスはワークスペースではなく、認証済みユーザーとメールアドレスが一致する Developer Program アカウントに属するため、sandbox list を実行しても役立つ結果は返りません。アカウントを持っていると言われた場合は、登録を案内する前に、ログインに使用しているメールアドレスがそのアカウントと一致することを確認してください。一致しない場合は、そのメールアドレスに紐づくワークスペースにログインしてもらいます。https://api.slack.com/developer-program/join を案内し、登録を待つのではなく今すぐ開発を始める方法として、3b の Free Team も提案します。

  • サンドボックスがある場合:表示して、使用するかどうか確認します。

  • サンドボックスがない場合:作成します。AskUserQuestion を使って開発者に名前とパスワードを尋ねてから、次を実行します。

    SLACK_CMD sandbox create --team <team_id> --name <sandbox-name> --password <password>
    

    重要:パスワードは認証情報です。絶対に表示、言い直し、要約への記載をしないでください。コマンドに直接渡してください。API キーに Step 4c を適用する場合と同じルールです。

    サンドボックスは、ブラウザーから https://api.slack.com/developer-program/sandboxes で作成することもできます。

サンドボックスを作成したら、続行する前に Step 2 の手順でログインしてもらいます。

Basic サンドボックス。 有料プランを利用しておらず、支払い方法も登録していない開発者には、Basic サンドボックスが割り当てられます。このスキルで構築するものはすべて動作しますが、制限は厳しくなります。1 か月間利用がないとアーカイブされ、Slack Connect は利用できず、Slack インフラストラクチャへのアプリのデプロイ(ROSI)もサポートされません。さらに必要な場合は、支払い方法を追加する(請求は発生しません)か、有料プランに加入してから、アプリやデータを失うことなく https://api.slack.com/developer-program/sandboxes でサンドボックスをアップグレードできます。制限については https://docs.slack.dev/tools/developer-sandboxes#basic に記載されています。

3b. Free Team(次の選択肢)

Free Team は、無料プランの通常の Slack ワークスペースです。開発者に https://slack.com/get-started で作成してもらい、Step 2 の手順でログインしてもらいます。

伝える内容:

  • このスキルで構築するものはすべてそこで動作します。Bolt アプリは無料プランに問題なくインストールして実行できます。
  • ワークスペースに作成できるアプリは 10 個まで です。それを超えると、CLI は service_limits_exceeded を返します。
  • これは独立したワークスペースであり、開発者用サンドボックスとは異なり、Enterprise Grid 組織ではありません。 そのため、組織レベルの機能はテストできません。具体的には、組織全体へのアプリのインストールと組織レベルのアプリ許可、admin.* API メソッド(Business+ または Enterprise Grid が必要)、および一般的な複数ワークスペースの動作です。アプリがこれらを対象とする場合は、代わりにサンドボックスを使用してください。
  • 同僚を招待しないでください。実際のユーザーがいる Free Team は、3c の目的において本番ワークスペースとなります。
3c. 既存の本番ワークスペース(最後の手段)

アプリが実際のデータや実際のユーザーを本当に必要とする場合に限ります。ログインしてもらう前に、開発者に次の点を伝えてください。

  • Admin app approval(AAA)によってインストールが阻止される可能性があります。 Enterprise Grid 組織では常に有効で、独立したワークスペースでも有効にできます。該当する場合、Step 5 のインストール時に承認をリクエストするか尋ねられ、その後、開発者は管理者の対応を待つことになります。
  • プロンプトを表示せずにそのリクエストを送信するには、環境で SLACK_AUTO_REQUEST_AAA=1 を設定します。これは環境変数であり、CLI フラグではありません。
  • 承認されない場合や時間がかかる場合は、無理に進めず、代わりに 3a または 3b に切り替えてください。

Step 4:テンプレートからアプリを作成する

開発者に、どのようなアプリを作りたいか尋ねます。選択したフレームワーク($0)に基づいて、利用可能なテンプレートを提示します。

bolt-js テンプレート
テンプレートリポジトリ説明
スターターテンプレートslack-samples/bolt-js-starter-template基本的な Bolt JS アプリです。最初の出発点として最適です
スターターエージェントslack-samples/bolt-js-starter-agentClaude/OpenAI を使用する最小構成の AI エージェントです
サポートエージェントslack-samples/bolt-js-support-agentAI を活用した IT ヘルプデスクエージェントです
はじめにslack-samples/bolt-js-getting-started-app公式の入門チュートリアルアプリです
例slack-samples/bolt-js-examplesSlack の機能をまとめて紹介するサンプルです
bolt-python テンプレート
テンプレートリポジトリ説明
スターターテンプレートslack-samples/bolt-python-starter-template基本的な Bolt Python アプリです。最初の出発点として最適です
スターターエージェントslack-samples/bolt-python-starter-agentClaude/OpenAI/Pydantic AI を使用する最小構成の AI エージェントです
サポートエージェントslack-samples/bolt-python-support-agentAI を活用した IT ヘルプデスクエージェントです
アシスタントテンプレートslack-samples/bolt-python-assistant-templateエージェントとアシスタントのテンプレートです
例slack-samples/bolt-python-examplesSlack の機能をまとめて紹介するサンプルです

AskUserQuestion を使って、開発者にテンプレートを選んでもらいます。初めての方には スターターテンプレート、AI エージェントを作成したい場合は スターターエージェントをおすすめします。

4a. AI プロバイダーを選ぶ(エージェントテンプレートのみ)

開発者が スターターエージェントまたはサポートエージェントを選んだ場合、これらのテンプレートには AI プロバイダーごとのサブディレクトリが含まれています。以下の表から、開発者のフレームワーク($0)に対応するサブディレクトリのみを提示し、AskUserQuestion を使って使用するプロバイダーを尋ねます。

プロバイダーの一覧はフレームワークによって異なるため、質問する前にフレームワークを確定する必要があります。まだ決まっていない場合は、先にフレームワークを尋ね、回答を待ってください。フレームワークとプロバイダーについて、1 回の AskUserQuestion 呼び出しでまとめて質問しないでください。

bolt-js のサブディレクトリ:

サブディレクトリ説明
claude-agent-sdkAnthropic の Claude Agent SDK を使用します
openai-agents-sdkOpenAI の Agents SDK を使用します

bolt-python のサブディレクトリ:

サブディレクトリ説明
claude-agent-sdkAnthropic の Claude Agent SDK を使用します
openai-agents-sdkOpenAI の Agents SDK を使用します
pydantic-aiPydantic AI を使用します(複数の LLM バックエンドに対応)

デフォルトの選択肢として Claude Agent SDK をおすすめします。

4b. プロジェクトに名前を付けて作成する

プロジェクトに付ける名前を尋ねます(my-slack-app のようなデフォルト名を提案します)。その後、次を実行します。

サブディレクトリのないテンプレートの場合(スターターテンプレート、はじめに、アシスタントテンプレート、例):

SLACK_CMD create <project-name> -t <template-repo>

サブディレクトリがあるエージェントテンプレートの場合(スターターエージェント、サポートエージェント):

SLACK_CMD create <project-name> -t <template-repo> --subdir <chosen-subdir>

例:

# Non-agent template
SLACK_CMD create my-slack-app -t slack-samples/bolt-js-starter-template

# Agent template with provider subdir
SLACK_CMD create my-slack-agent -t slack-samples/bolt-js-starter-agent --subdir claude-agent-sdk

ディレクトリが存在することを確認し、その内容を一覧表示して、プロジェクトが正常に作成されたことを確認します。

4c. 必須の環境変数を設定する(エージェントテンプレートのみ)

開発者がエージェントテンプレート(スターターエージェントまたはサポートエージェント)を選んだ場合、選択した AI プロバイダーに必要な API キーを設定する必要があります。AskUserQuestion を使ってキーの値を尋ね、プロジェクトディレクトリ内から Slack CLI を使って設定します。

プロバイダーごとの必須環境変数:

プロバイダー環境変数説明
claude-agent-sdkANTHROPIC_API_KEYAnthropic API キー
openai-agents-sdkOPENAI_API_KEYOpenAI API キー
pydantic-aiOPENAI_API_KEYOpenAI API キー(必須)。Anthropic をバックエンドとして使用する場合は、ANTHROPIC_API_KEY も任意で設定できます。両方が設定されている場合は、デフォルトで Anthropic が使用されます。

AskUserQuestion を使って、開発者に API キーの値を尋ねます。その後、それぞれを設定します。

cd <project-name> && SLACK_CMD env set <ENV_VAR_NAME> <value>

例:

cd my-slack-agent && SLACK_CMD env set ANTHROPIC_API_KEY sk-ant-...

重要:API キーの値をログや出力に保存したり、表示したりしないでください。SLACK_CMD env set に直接渡すだけにしてください。


ステップ 5:アプリをローカルで実行する

slack:slack-cli スキルの ステップ 6:アプリをローカルで実行する(slack run) を使って、アプリまたはチームの対象を特定し、開発サーバーをバックグラウンドで起動します。

開発者に、アプリが起動し、ステップ 3 で選んだワークスペースにインストールされたことと、ファイルを変更すると自動で再読み込みされることを伝えます。

インストールが管理者の承認リクエストで停止した場合は、AAA が有効になっているワークスペースを選んでいます。選択肢についてはステップ 3c を参照してください。


ステップ 6:次のステップ

アプリの起動後、次のステップを提案します。

  1. コードを確認する:プロジェクトファイルを一緒に確認し、アプリの構成、マニフェスト、リスナーなどについて説明できると伝えます。
  2. 変更を加える:ホットリロードの動作を確認するため、メッセージへの応答を変更するなど、小さな変更を提案します。
  3. 機能を追加する:テンプレートに基づいて、追加するとよい Slack の機能(スラッシュコマンド、イベント、モーダル、AI 機能など)を提案します。Block Kit UI(メッセージレイアウト、モーダル、ホームタブ)を作成する場合は、ここで JSON を作るのではなく、slack:block-kit スキルを使います。
  4. ドキュメントを確認する:Slack Platform のドキュメント全体について、https://docs.slack.dev を案内します。

注意事項

  • SLACK_CMD はプレースホルダーです。必ずステップ 1a で特定した実際のコマンド名(通常は slack ですが、エイリアスの場合もあります)に置き換えてください。
  • このスキルの対象は Bolt for JavaScript と Bolt for Python のみです。Deno、ワークフローアプリ、または slack deploy(ホスト型デプロイ)は提案しないでください。
  • このスキルはアプリのひな形を作成して実行します。Block Kit JSON は対象外です。開発者からメッセージ、モーダル、またはホームタブのレイアウトの作成や編集を依頼された場合(今またはステップ 6)、ここで記憶を頼りにブロックを書くのではなく、slack:block-kit スキルを使ってください。
  • SLACK_CMD sandbox create では、名前とパスワードのフラグが不足している場合にのみ、それらの入力が求められます。--team、--name、--password を指定すると非対話型で実行されるため、開発者に任せず、自分で実行できます。SLACK_CMD sandbox list にも同じ理由で --team が必要です。指定しないと、CLI から使用する認証情報を尋ねられます。
  • Free Teams と開発者用サンドボックスでは、このスキルで作成するものすべてがサポートされています。CLI の free_team_not_allowed エラーは、このスキルでは作成しないローコードのワークフローアプリと関数アプリに限定されます。
  • 開発者が問題に遭遇した場合は、セットアップの診断に SLACK_CMD doctor を提案してください。

コメント