mcpField
S
slack-automation

slack-automation

github.com/casper-studios生産性15262 回インストール8 週間前に更新
リポジトリ

slack-automation について

slack-automationは、Slackワークスペースの管理と内容分析を行うスキルです。チャンネル検索やメッセージ閲覧、社内情報の整理に向けており、操作は主に読み取り専用ですが、チャンネル作成にも対応します。Slack Bot Tokenを使い、ボットが参加しているチャンネルにアクセスします。

主な機能

  1. 01名前によるチャンネル検索
  2. 02チャンネルメッセージの閲覧
  3. 03チャンネルの作成
  4. 04トピック別のメッセージ分類
  5. 05ボットトークンによるSlackアクセス

活用シーン

  1. 01社内ニュースを週刊ニュースレター向けに要約
  2. 02Slackの議論に関連する会議の検索
  3. 03分類したメッセージをレポートに整理

インストール

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

$npx skills add https://github.com/casper-studios/casper-marketplace --skill slack-automation

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

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
categorize.md
create-channel.md
fetch-news.md
search.md
scripts/
categorize_slack_messages.py
create_slack_channel.py
fetch_slack_news.py
slack_search.py

詳細

Slack の自動化

概要

Slack ワークスペースで、チャンネルの管理、メッセージの読み取り、コンテンツの分析を行います。チャンネルの作成を除き、すべての操作は読み取り専用です。

クイック判断ツリー

What do you need?
│
├── Search for channels by name
│   └── references/search.md
│   └── Script: scripts/slack_search.py search
│
├── Read messages from a channel
│   └── references/fetch-news.md
│   └── Script: scripts/fetch_slack_news.py
│
├── Create a new channel
│   └── references/create-channel.md
│   └── Script: scripts/create_slack_channel.py
│
└── Categorize/analyze messages
    └── references/categorize.md
    └── Script: scripts/categorize_slack_messages.py

環境のセットアップ

# Required in .env
SLACK_BOT_TOKEN=xoxb-your-bot-token

必要なボットのスコープ

スコープ用途
channels:readパブリックチャンネルを一覧表示する
channels:historyパブリックチャンネルのメッセージを読み取る
groups:readプライベートチャンネルを一覧表示する
groups:historyプライベートチャンネルのメッセージを読み取る
channels:manageチャンネルを作成する

一般的な使い方

チャンネルを検索する
python scripts/slack_search.py search "internal" --limit 10
チャンネルのメッセージを読む
python scripts/slack_search.py read "internal-client" --days 7
チャンネルを作成する
python scripts/create_slack_channel.py "project-alpha" --private

チャンネル名のパターン

クライアント用チャンネルの場合:internal-{client-name}

  • 例:internal-microsoft、internal-acme-corp

費用

無料です。Slack API のリクエストごとの費用はありません。レート制限は約 50 リクエスト/分です。

セキュリティに関する注意事項

認証情報の取り扱い
  • SLACK_BOT_TOKEN は .env ファイルに保存してください(git に絶対にコミットしないでください)
  • ボットトークンは xoxb- で始まります。ログや出力に絶対に表示しないでください
  • 漏えいした場合は、Slack App の設定からトークンをローテーションしてください
  • ハードコードした値ではなく、環境変数を使用してください
データプライバシー
  • メッセージには社内の機密通信が含まれる場合があります
  • メッセージの内容を永続的なログに保存しないでください
  • 内容をコピーする代わりに、参照にはメッセージのリンク/IDを使用してください
  • エクスポートしたメッセージに適用されるデータ保持ポリシーを確認してください
  • ユーザープロフィールには PII(氏名、メールアドレス、プロフィール写真)が含まれます
アクセススコープ
  • ユースケースに必要な最小限のスコープをリクエストしてください。
    • channels:read - パブリックチャンネルの一覧表示(読み取り専用)
    • channels:history - パブリックチャンネルのメッセージの読み取り(読み取り専用)
    • groups:read - ボットが参加しているプライベートチャンネルの一覧表示(読み取り専用)
    • groups:history - プライベートチャンネルのメッセージの読み取り(読み取り専用)
    • channels:manage - チャンネルの作成(書き込みアクセス)
  • ボットがアクセスできるのは、招待されたチャンネルのみです
  • スコープは Slack App Settings > OAuth & Permissions で確認してください
コンプライアンスに関する考慮事項
  • 監査ログ:Slack Enterprise Grid では、コンプライアンス用の監査ログを利用できます
  • メッセージの保持:組織のデータ保持ポリシーに従ってください
  • GDPR:メッセージの内容には EU ユーザーの PII が含まれる場合があります
  • 電子情報開示:エクスポートしたメッセージが法的保全の対象となる場合があります
  • 社内コミュニケーション:Slack のデータは機密情報として扱ってください
  • チャンネルのプライバシー:プライベートチャンネルへのアクセスには明示的な招待が必要です

トラブルシューティング

よくある問題
問題:チャンネルが見つからない

症状: 読み取りまたは投稿時に「channel_not_found」エラーが発生する 原因: チャンネル ID が無効、ボットがチャンネルに参加していない、またはプライベートチャンネルである 解決策:

  • チャンネル ID が正しいことを確認する(slack_search.py search を使用)
  • ボットをチャンネルに招待する(/invite @botname)
  • チャンネルがプライベートかどうか確認する。プライベートチャンネルにはボットへの明示的な招待が必要です
  • チャンネルがアーカイブまたは削除されていないことを確認する
問題:権限またはスコープが不足している

症状: 「missing_scope」または「not_allowed_token_type」エラーが発生する 原因: ボットトークンに必要な OAuth スコープがない 解決策:

  • Slack App Settings > OAuth & Permissions に移動する
  • 必要なスコープ(channels:read、channels:history など)を追加する
  • スコープを追加した後、アプリをワークスペースに再インストールする
  • 正しいボットトークン(xoxb- で始まるもの)を使用していることを確認する
問題:トークンの有効期限切れ、または無効

症状: 「invalid_auth」または「token_revoked」エラーが発生する 原因: OAuth トークンの有効期限が切れている、取り消されている、または設定が正しくない 解決策:

  • Slack App の設定でボットを再認証する
  • 取り消された場合はボットトークンを再生成する
  • .env の SLACK_BOT_TOKEN の値が正しいことを確認する
  • トークンに空白や特殊文字が含まれていないことを確認する
問題:レート制限に達した

症状: 「ratelimited」エラーまたは 429 ステータスコードが発生する 原因: 短時間に API リクエストを送りすぎている 解決策:

  • リクエストの間に遅延を入れる(1~2 秒)
  • 一括操作のバッチサイズを小さくする
  • 再試行時に指数バックオフを実装する
  • Slack では、ほとんどのエンドポイントで約 50 リクエスト/分が許可されています
問題:プライベートチャンネルへのアクセスが拒否される

症状: 必要なスコープがあるにもかかわらず、プライベートチャンネルを読み取れません 原因: ボットがプライベートチャンネルに追加されていません 解決策:

  • チャンネルメンバーにボットを招待してもらいます:/invite @botname
  • groups:read と groups:history のスコープが追加されていることを確認します
  • スコープの追加後にボットが再インストールされていることを確認します

リソース

  • references/search.md - チャンネルの検索とメッセージの読み取り
  • references/fetch-news.md - チャンネルからニュースを取得
  • references/create-channel.md - 新しいチャンネルを作成
  • references/categorize.md - AI によるメッセージの分類

統合パターン

Slack からニュースレターを作成

スキル: slack-automation → content-generation ユースケース: 社内ニュースを要約して週刊ニュースレターを作成 フロー:

  1. ニュース/お知らせチャンネルからメッセージを取得
  2. 関連するコンテンツを分類して絞り込み
  3. content-generation を使って、書式を整えたニュースレターのセクションを生成
Slack と会議のコンテキスト

スキル: slack-automation → transcript-search ユースケース: Slack の議論を調査する際に関連する会議を検索 フロー:

  1. Slack で顧客名またはトピックを検索
  2. 日付の範囲と参加者名を抽出
  3. transcript-search で関連する会議の録画を検索
Slack のレポートを Drive に保存

スキル: slack-automation → google-workspace ユースケース: 分類した Slack の要約を Google Drive にアーカイブ フロー:

  1. 社内チャンネルからメッセージを取得して分類
  2. 書式を整えたレポート文書を生成
  3. google-workspace を使って Google Drive にアップロード

コメント