mcpField
S
slack

slack

github.com/letta-ai生産性15236 回インストール4 週間前に更新
リポジトリ

slack について

Slack ワークスペースをコマンドラインから検索・操作するスキルです。メッセージ、チャンネル、スレッド、ユーザーを扱い、ラッパースクリプトで API コマンドへのトークンの直接記載を避けます。

主な機能

  1. 01Slack の条件指定によるメッセージ検索
  2. 02メッセージ送信とチャンネル参加
  3. 03チャンネル履歴とスレッドの閲覧
  4. 04チャンネル一覧とユーザー表示
  5. 05追加の Slack API エンドポイントを安全に呼び出し

活用シーン

  1. 01チャンネル、送信者、日付でメッセージを検索
  2. 02チャンネルやユーザーに更新を投稿
  3. 03チャンネル履歴やスレッドの返信を確認

インストール

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

$npx skills add https://github.com/letta-ai/skills --skill slack

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

同梱ファイル

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

manifest.yaml
references/
api.md
scripts/
slack
slack-api
slack-setup

詳細

Slack

コマンドラインから Slack ワークスペースを検索し、操作します。

重要:トークンのセキュリティ

$SLACK_TOKEN を curl コマンドに直接含めないでください。 トークンがログに記録され、漏えいするおそれがあります。

トークンを内部で環境変数から読み込むラッパースクリプトを必ず使用してください。

  • slack send を使用してください。curl ... -H "Authorization: Bearer $SLACK_TOKEN" は使用しないでください
  • 高度な API 呼び出しには slack-api POST ... を使用してください

クイックセットアップ(新規ユーザー向け)

# Add scripts to PATH
export PATH="$PATH:$HOME/.letta/skills/slack/scripts"

# Create Slack app with one click (opens browser)
slack-setup

Slack のアプリ作成ページが開き、すべての権限があらかじめ設定されます。次に、以下を行います。

  1. Create をクリックしてアプリを作成します
  2. OAuth & Permissions → Install to Workspace に移動します
  3. User OAuth Token(xoxp-...)をコピーします。ボットトークンではありません
  4. シェルで設定します。
    export SLACK_TOKEN="xoxp-..."
    

ユーザートークンを使う理由: ボットトークン(xoxb-)ではメッセージを検索できません(Slack の制限です)。ユーザートークンでは、ボットができることに加えて検索もできます。

クイックセットアップ(既存のトークン向け)

export SLACK_TOKEN="xoxp-..."   # User token (recommended) or xoxb- bot token
export PATH="$PATH:$HOME/.letta/skills/slack/scripts"

コマンド

メッセージを検索する
slack search "deployment failed"
slack search "from:@caren database"
slack search "in:#engineering api"
slack search "in:#engineering after:2024-01-01 bug"

検索では Slack の修飾子(from:、in:、to:、has:link、has:reaction、before:、after:、on:)を使用できます。

メッセージを送信する
slack send "#general" "Hello team!"
slack send "#alerts" ":rocket: Deployment complete"
slack send "@caren" "Quick question..."
チャンネルに参加する

履歴を読み取るには、ボットがチャンネルのメンバーである必要があります。公開チャンネルには次のコマンドで参加できます。

slack join "#engineering"

プライベートチャンネルでは、Slack 上で誰かに手動でボットを招待してもらう必要があります。

チャンネルを一覧表示する
slack channels
チャンネルの履歴を読む
slack history "#engineering"
slack history "#engineering" 50    # Last 50 messages
スレッドの返信を読む
slack thread "C1234567890" "1234567890.123456"
slack thread "C1234567890" "1234567890.123456" --json   # Raw JSON output

スレッドのタイムスタンプ(ts)は、検索結果またはチャンネルの履歴から取得できます。

ユーザーを一覧表示して確認する
slack users
slack user "U1234567890"

高度な操作:API に直接アクセスする

slack で対応していない操作には、トークンを安全に扱う slack-api を使用してください。

# Post with rich formatting (blocks)
slack-api POST chat.postMessage '{"channel": "#general", "blocks": [{"type": "section", "text": {"type": "mrkdwn", "text": "*Bold* and _italic_"}}]}'

# Add reaction
slack-api POST reactions.add '{"channel": "C1234", "timestamp": "1234.5678", "name": "thumbsup"}'

# Get user info
slack-api GET "users.info?user=U1234567890"

# Reply to thread
slack-api POST chat.postMessage '{"channel": "C1234", "thread_ts": "1234.5678", "text": "Thread reply"}'

その他の API の使用例については、references/api.md を参照してください。

含まれる権限

マニフェスト(slack-setup)には、以下のボットスコープが含まれています。

カテゴリスコープ
検索search:read
メッセージchat:write, chat:write.public, reactions:read, reactions:write
公開チャンネルchannels:read, channels:history, channels:join
プライベートチャンネルgroups:read, groups:history
ダイレクトメッセージim:read, im:write, im:history
ユーザーusers:read, users:read.email
ファイルfiles:read, files:write
その他emoji:read, links:read

コメント