mcpField
A
agent-slack

agent-slack

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

agent-slack について

agent-slack は、コマンドラインから Slack のメッセージ、チャンネル、ユーザー、ワークフローを操作するスキルです。シェルコマンドで Slack の作業を自動化する用途に向いています。

主な機能

  1. 01メッセージとスレッドの取得
  2. 02メッセージとファイルの検索
  3. 03メッセージの送信、編集、削除、リアクション
  4. 04チャンネル、ユーザー、ワークフローの管理
  5. 05メッセージ添付ファイルのダウンロード

活用シーン

  1. 01トピックに関連する最近の投稿の検索
  2. 02チャンネル内のメッセージ送信や更新
  3. 03チャンネルの作成と参加者の招待
  4. 04Slack ワークフロー定義の確認

インストール

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

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

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

同梱ファイル

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

LICENSE
assets/
slack-small.svg
references/
commands.md
output.md
targets.md

詳細

agent-slack による Slack の自動化

agent-slack は $PATH 上にある CLI バイナリです。直接実行します(例:agent-slack user list)。

セットアップ

1. CLI をインストールする

agent-slack が $PATH 上に見つからない場合は、インストールします。

curl -fsSL https://raw.githubusercontent.com/stablyai/agent-slack/main/install.sh | sh

代替方法:npm i -g agent-slack(Node >= 22.5 が必要)または nix run github:stablyai/agent-slack。

2. Slack で認証する

Slack Desktop がインストール済みでサインインしている場合、認証は自動で行われます。セットアップは不要です。次のコマンドを実行して確認します。

agent-slack auth test

失敗する場合(または Slack Desktop を使っていない場合)は、ブラウザーから認証情報をインポートしてみてください。

# Try Chrome first, then Firefox
agent-slack auth import-chrome
agent-slack auth test
agent-slack auth import-firefox
agent-slack auth test

どちらも機能しない場合は、環境変数を使ってトークンを手動で設定できます。

export SLACK_TOKEN="xoxc-..."      # browser token
export SLACK_COOKIE_D="xoxd-..."   # browser cookie
agent-slack auth test
3. 確認する

設定済みのワークスペースを確認します。

agent-slack auth whoami

複数のワークスペースがある場合は、コマンドに --workspace "myteam" を渡して対象を明確にしてください。

標準的なワークフロー(Slack メッセージの URL がある場合)

  1. 単一のメッセージを取得します(スレッドの要約があれば、それも取得します)。
agent-slack message get "https://workspace.slack.com/archives/C123/p1700000000000000"
  1. スレッド全体が必要な場合:
agent-slack message list "https://workspace.slack.com/archives/C123/p1700000000000000"

チャンネルの最近のメッセージを閲覧する

チャンネルに最近投稿された内容(チャンネル履歴)を確認します。

agent-slack message list "general" --limit 20
agent-slack message list "C0123ABC" --limit 10
agent-slack message list "general" --with-reaction eyes --oldest "1770165109.000000" --limit 20
agent-slack message list "general" --without-reaction dart --oldest "1770165109.000000" --limit 20

最も新しいメッセージが時系列順で返されます。--limit を使って件数を指定します(デフォルトは 25 件)。 --with-reaction または --without-reaction を使う場合は、スキャン範囲を指定するために --oldest も渡す必要があります。

添付ファイル(スニペット/画像/ファイル)

message get/list と search は添付ファイルを ~/.agent-slack/tmp/downloads/ に自動ダウンロードし、メタデータを message.files[](name と path を含む)で返します。ダウンロードに失敗した場合は、message.files[].error フィールドが含まれます。

メッセージの下書きを作成する(ブラウザーエディター)

ブラウザーで Slack のようなリッチテキストエディターを開き、書式設定ツールバー(太字、斜体、取り消し線、リンク、リスト、引用、コード、コードブロック)を使ってメッセージを作成できます。送信後、「Slack で表示」リンクが表示されます。

agent-slack message draft "general"
agent-slack message draft "general" "initial text"
agent-slack message draft "https://workspace.slack.com/archives/C123/p1700000000000000"

送信、編集、削除、リアクション

agent-slack message send "https://workspace.slack.com/archives/C123/p1700000000000000" "I can take this."
agent-slack message send "alerts-staging" "here's the report" --attach ./report.md
agent-slack message edit "https://workspace.slack.com/archives/C123/p1700000000000000" "I can take this today."
agent-slack message delete "https://workspace.slack.com/archives/C123/p1700000000000000"

agent-slack message send "general" "Here's the plan:
- Step 1: do the thing
- Step 2: verify it worked
  - Sub-step: check logs"
agent-slack message react add "https://workspace.slack.com/archives/C123/p1700000000000000" "eyes"
agent-slack message react remove "https://workspace.slack.com/archives/C123/p1700000000000000" "eyes"

チャンネルモードで編集または削除するには、--ts が必要です。

agent-slack message edit "general" "Updated text" --workspace "myteam" --ts "1770165109.628379"
agent-slack message delete "general" --workspace "myteam" --ts "1770165109.628379"

message send の添付オプション:

  • --attach <path> ローカルファイルをアップロードします(複数指定可能)

チャンネルの一覧表示とユーザーの作成/招待

agent-slack channel list
agent-slack channel list --user "@alice" --limit 50
agent-slack channel list --all --limit 100
agent-slack channel new --name "incident-war-room"
agent-slack channel new --name "incident-leads" --private
agent-slack channel invite --channel "incident-war-room" --users "U01AAAA,@alice,[email protected]"
agent-slack channel invite --channel "incident-war-room" --users "[email protected]" --external
agent-slack channel invite --channel "incident-war-room" --users "[email protected]" --external --allow-external-user-invites

--external を指定する場合、招待対象にはメールアドレスを指定する必要があります。デフォルトでは、招待されたユーザーは外部ユーザーに制限されています。他のユーザーを招待できるようにするには、--allow-external-user-invites を追加します。

検索(メッセージ+ファイル)

安定性を高めるため、チャンネルを指定した検索をおすすめします。

agent-slack search all "smoke tests failed" --channel "alerts" --after 2026-01-01 --before 2026-02-01
agent-slack search messages "stably test" --user "@alice" --channel general
agent-slack search files "testing" --content-type snippet --limit 10

複数ワークスペースのガードレール(重要)

複数のワークスペースが設定されており、チャンネルの名前(例:general)を使う場合は、曖昧さを避けるために --workspace を渡すか、SLACK_WORKSPACE_URL を設定してください。

agent-slack message get "general" --workspace "https://myteam.slack.com" --ts "1770165109.628379"
agent-slack message get "general" --workspace "myteam" --ts "1770165109.628379"

DM/グループ DM チャンネル

DM またはグループ DM のチャンネル ID を取得します。グループへのメッセージ送信に便利です。

agent-slack user dm-open @alice @bob
agent-slack user dm-open U01AAAA U02BBBB U03CCCC

既読にする

指定したメッセージまでのチャンネル、DM、またはグループ DM を既読にします。

agent-slack channel mark "https://workspace.slack.com/archives/C123/p1700000000000000"
agent-slack channel mark "general" --workspace "myteam" --ts "1770165109.628379"
agent-slack channel mark "D0A04PB2QBW" --workspace "myteam" --ts "1770165109.628379"

特定のメッセージを未読として表示するには、--ts にその直前の値を設定します(0.000001 を減算します)。これにより既読位置が移動し、そのメッセージ以降がすべて新着として表示されます。

agent-slack channel mark "general" --workspace "myteam" --ts "1770165109.628378"

ワークフロー

チャンネルにブックマークされた Slack ワークフローを検出して実行します。

# List workflows in a channel
agent-slack workflow list "#ops"

# Preview trigger metadata (no side effects)
agent-slack workflow preview "Ft123ABC"

# Get workflow definition including form fields and steps
agent-slack workflow get "Ft123ABC"
agent-slack workflow get "Wf456DEF"

# Trip a workflow trigger
agent-slack workflow run "Ft123ABC" --channel "#ops"

Canvas+ユーザー

agent-slack canvas get "https://workspace.slack.com/docs/T123/F456"
agent-slack user list --workspace "https://workspace.slack.com" --limit 100
agent-slack user get "@alice" --workspace "https://workspace.slack.com"

リファレンス

  • references/commands.md:コマンド一覧とすべてのフラグ
  • references/targets.md:URL と #channel の対象指定ルール
  • references/output.md:JSON 出力形式とダウンロード先

コメント