mcpField
S
slack-messaging

slack-messaging

github.com/obra生産性435223 回インストール22 週間前に更新
リポジトリ

slack-messaging について

slack-messagingは、slackcliを使ってコマンドラインからSlackのメッセージを読み書きするスキルです。ブラウザーのセッショントークンで認証し、Slackアプリの作成は不要で、複数ワークスペースに対応します。

主な機能

  1. 01チャンネル、DM、IDの一覧表示
  2. 02チャンネルやDMへのメッセージ送信
  3. 03メッセージスレッドへの返信
  4. 04チャンネルやスレッドのメッセージ取得
  5. 05複数ワークスペースの認証管理

活用シーン

  1. 01ターミナルからSlackチャンネルへ送信
  2. 02チャンネルのメッセージをJSONで取得
  3. 03既存スレッドへの返信
  4. 04連携による投稿の成功確認

インストール

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

$npx skills add https://github.com/obra/superpowers-lab --skill slack-messaging

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

同梱ファイルscripts/extract-tokens

詳細

slackcli を使った Slack メッセージの送受信

slackcli(shaharia-lab/slackcli)を使って、コマンドラインから Slack メッセージを送受信します。

インストール

バイナリをダウンロードします。

curl -sL -o /usr/local/bin/slackcli \
  "https://github.com/shaharia-lab/slackcli/releases/download/v0.1.1/slackcli-linux"
chmod +x /usr/local/bin/slackcli

macOS(Intel):slackcli-linux を slackcli-macos に置き換えます
macOS(Apple Silicon):slackcli-macos-arm64 に置き換えます

認証

slackcli はブラウザーのセッショントークン(xoxc + xoxd)を使用するため、Slack アプリの作成は不要です。

対話型セットアップ
./scripts/extract-tokens <workspace-url>

ブラウザーの DevTools からトークンを抽出する手順を案内します。

手動セットアップ
slackcli auth login-browser \
  --xoxd="xoxd-..." \
  --xoxc="xoxc-..." \
  --workspace-url=https://your-workspace.slack.com
認証の確認
slackcli auth list

チャンネルの検索

slackcli conversations list を使って、チャンネルとその ID を確認します。

# List all channels
slackcli conversations list

# Filter output
slackcli conversations list | grep -i "channel-name"

メッセージの送信

# Send to a channel (use channel ID from conversations list)
slackcli messages send --recipient-id=C0XXXXXXXX --message="Hello from CLI"

# Send to a DM (use user's DM channel ID)
slackcli messages send --recipient-id=D0XXXXXXXX --message="Hey"

# Reply in a thread
slackcli messages send --recipient-id=C0XXXXXXXX --message="Thread reply" --thread-ts=1769756026.624319

--recipient-id は、常にチャンネル ID(C...)または DM チャンネル ID(D...)です。

メッセージの読み取り

# Read last N messages from a channel
slackcli conversations read C0XXXXXXXX --limit=10

# Read as JSON (for parsing)
slackcli conversations read C0XXXXXXXX --limit=10 --json

# Read a thread
slackcli conversations read C0XXXXXXXX --thread-ts=1769756026.624319

チャンネルの一覧表示

slackcli conversations list

すべてのパブリックチャンネル、プライベートチャンネル、DM とその ID が返されます。

Slack インテグレーションのテスト

ボットまたはインテグレーションがメッセージを正しく投稿したことを確認するには、次のようにします。

# Read the channel, check for the expected message
slackcli conversations read CHANNEL_ID --limit=5 --json | jq '.messages[] | select(.text | contains("expected text"))'

テストメッセージを送信して、往復の動作を確認するには、次のようにします。

# Send
slackcli messages send --recipient-id=CHANNEL_ID --message="integration test $(date +%s)"

# Read back
slackcli conversations read CHANNEL_ID --limit=1 --json

複数のワークスペース

slackcli は複数のワークスペースに対応しています。必要なワークスペースごとに認証フローを実行します。

# Add first workspace
./scripts/extract-tokens https://workspace-one.slack.com

# Add second workspace
./scripts/extract-tokens https://workspace-two.slack.com

# List all authenticated workspaces
slackcli auth list

メッセージを送信すると、slackcli はチャンネル ID に基づいて適切なワークスペースに自動的にルーティングします。

トークンに関する注意

  • ブラウザーのトークン(xoxc/xoxd)は、ボットではなくログイン中のユーザーとして動作します
  • 送信したメッセージは、アプリではなくユーザーのものとして表示されます
  • ユーザーがブラウザーのセッションからログアウトすると、トークンは期限切れになります
  • 更新するには、ログイン中のブラウザーセッションからトークンを再度抽出します
  • すべてのワークスペースの認証情報は ~/.config/slackcli/workspaces.json に保存されます

コメント