Slack Model Context Protocol Server について
Claude Desktop などの MCP クライアントから Slack を利用するコネクターです。ワークスペースでのメッセージ送信とメンバー一覧の取得に対応しています。
主な機能
- 01Slack へのメッセージ送信
- 02ワークスペースユーザーの一覧取得
- 03ボット OAuth トークンで接続
活用シーン
- 01Slack チャンネルへの歓迎メッセージ送信
- 02ワークスペースメンバーの確認
MCP 対応
MCP サーバーとして Slack ワークスペースに接続し、クライアントにメッセージ送信とユーザー一覧取得の機能を提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Slack Model Context Protocol サーバー
これは、Claude Desktop(または任意の MCP クライアント)が Slack ワークスペースと連携し、メッセージを投稿したり、すべてのユーザーの一覧を取得したりできるようにするコネクターです。
ローカル開発
このクライアントをローカルで実行するには、次の設定を Claude Desktop の MCP サーバー設定ファイルに追加してください。
{
"mcpServers": {
"mcp-slack-local": {
"command": "node",
"args": ["/path/to/project/dist/index.js"], <---- replace this with your project path
"env": {
"SLACK_BOT_USER_OAUTH_TOKEN": "test-bot-token",
"SLACK_TEAM_ID": "test-team-id"
}
},
}
}
これで、次のようなプロンプトを使って Claude Desktop アプリでこの実装をテストできます。
- 「Slack チームのすべてのユーザーを一覧表示できますか?」
- 「ID が
<channel id>の Slack チャンネルにウェルカムメッセージを送信できますか?」
サーバーをローカルで実行するには:
node dist/index.js
別のターミナルでビルドを実行します。
npm run watch
Slack の権限スコープ
次の権限はすでに実装されています。
| 権限 | 説明 | 実装済み |
|---|---|---|
| app_configurations:read | App Manifest API を介してアプリの設定情報を読み取ります | ❌ |
| app_configurations:write | App Manifest API を介してアプリの設定情報を書き込み、アプリを作成します | ❌ |
| app_mentions:read | アプリが参加している会話で、@your_slack_app に直接言及しているメッセージを表示します | ❌ |
| assistant:write | slack アプリが AI アシスタントとして動作できるようにします | ❌ |
| bookmarks:read | ブックマークを一覧表示します | ❌ |
| bookmarks:write | ブックマークを作成、編集、削除します | ❌ |
| calls:read | 進行中および過去の通話に関する情報を表示します | ❌ |
| calls:write | ワークスペース内で通話を開始および管理します | ❌ |
| canvases:read | slack アプリは、Slack 内で作成されたキャンバスの内容にアクセスできます。 | ❌ |
| canvases:write | slack アプリは、キャンバスを作成、編集、削除できます。 | ❌ |
| channels:history | slack アプリが追加されているパブリックチャンネルのメッセージやその他のコンテンツを表示します | ❌ |
| channels:join | ワークスペース内のパブリックチャンネルに参加します | ❌ |
| channels:manage | slack アプリが追加されているパブリックチャンネルを管理し、新しいチャンネルを作成します | ❌ |
| channels:read | ワークスペース内のパブリックチャンネルの基本情報を表示します | ❌ |
| channels:write.invites | パブリックチャンネルにメンバーを招待します | ❌ |
| channels:write.topic | パブリックチャンネルの説明を設定します | ❌ |
| chat:write | 承認済みのチャンネルや会話にメッセージを投稿します | ✅ |
| chat:write.customize | カスタマイズしたユーザー名とアバターを使用して、@your_slack_app としてメッセージを送信します | ❌ |
| chat:write.public | slack アプリが参加していないチャンネルにメッセージを送信します | ❌ |
| commands | ユーザーが使用できるショートカットやスラッシュコマンドを追加します | ❌ |
| conversations.connect:manage | slack アプリが Slack Connect チャンネルを管理できるようにします | ❌ |
| conversations.connect:read | slack アプリが参加しているチャンネルに送信された Slack Connect の招待イベントを受信します | ❌ |
| conversations.connect:write | slack アプリが追加されているチャンネルへの Slack Connect 招待を作成し、slack アプリに送信された招待を承諾します | ❌ |
| datastore:read | Slack App Datastore のデータを表示および参照します | ❌ |
| datastore:write | Slack App Datastore にデータを書き込みます | ❌ |
| dnd:read | ワークスペース内のユーザーの通知非表示設定を表示します | ❌ |
| emoji:read | ワークスペース内のカスタム絵文字を表示します | ❌ |
| files:read | slack アプリが追加されているチャンネルや会話で共有されたファイルを表示します | ❌ |
| files:write | slack アプリとしてファイルをアップロード、編集、削除します | ❌ |
| groups:history | slack アプリが追加されているプライベートチャンネルのメッセージやその他のコンテンツを表示します | ❌ |
| groups:read | slack アプリが追加されているプライベートチャンネルの基本情報を表示します | ❌ |
| groups:write | slack アプリが追加されているプライベートチャンネルを管理し、新しいチャンネルを作成します | ❌ |
| groups:write.invites | プライベートチャンネルにメンバーを招待します | ❌ |
| groups:write.topic | プライベートチャンネルの説明を設定します | ❌ |
| im:history | slack アプリが追加されているダイレクトメッセージのメッセージやその他のコンテンツを表示します | ❌ |
| im:read | slack アプリが追加されているダイレクトメッセージの基本情報を表示します | ❌ |
| im:write | ユーザーとのダイレクトメッセージを開始します | ❌ |
| im:write.topic | ダイレクトメッセージの説明を設定します | ❌ |
| incoming-webhook | 特定のチャンネルにメッセージを投稿する一方向の Webhook を作成します | ❌ |
| links.embed:write | メッセージやアプリのサーフェスに動画プレーヤーの URL を埋め込みます | ❌ |
| links:read | メッセージ内の URL を表示します | ❌ |
| links:write | メッセージ内の URL のプレビューを表示します | ❌ |
| metadata.message:read | slack アプリが追加されているチャンネル内のメッセージメタデータを、slack アプリが読み取れるようにします | ❌ |
| mpim:history | slack アプリが追加されているグループダイレクトメッセージのメッセージやその他のコンテンツを表示します | ❌ |
| mpim:read | slack アプリが追加されているグループダイレクトメッセージの基本情報を表示します | ❌ |
| mpim:write | ユーザーとのグループダイレクトメッセージを開始します | ❌ |
| mpim:write.topic | グループダイレクトメッセージの説明を設定します | ❌ |
| none | スコープなしでメソッドを実行します | ❌ |
| pins:read | slack アプリが追加されているチャンネルや会話のピン留めされたコンテンツを表示します | ❌ |
| pins:write | ピン留めされたメッセージやファイルを追加および削除します | ❌ |
| reactions:read | slack アプリが追加されているチャンネルや会話の絵文字リアクションと、それに関連するコンテンツを表示します | ❌ |
| reactions:write | 絵文字リアクションを追加および編集します | ❌ |
| reminders:read | slack アプリが作成したリマインダーを表示します | ❌ |
| reminders:write | リマインダーを追加、削除、または完了としてマークします | ❌ |
| remote_files:read | ワークスペース内でアプリが追加したリモートファイルを表示します | ❌ |
| remote_files:share | ユーザーに代わってリモートファイルを共有します | ❌ |
| remote_files:write | ユーザーに代わってリモートファイルを追加、編集、削除します | ❌ |
| search:read.files | ファイル内のワークスペースのコンテンツを検索します | ❌ |
| search:read.im | ダイレクトメッセージ内のワークスペースのコンテンツを検索します | ❌ |
| search:read.mpim | グループダイレクトメッセージ内のワークスペースのコンテンツを検索します | ❌ |
| search:read.private | プライベートチャンネル内のワークスペースのコンテンツを検索します | ❌ |
| search:read.public | パブリックチャンネル内のワークスペースのコンテンツを検索します | ❌ |
| team.billing:read | slack アプリがインストールされているワークスペースの請求プランを、slack アプリが読み取れるようにします | ❌ |
| team.preferences:read | slack アプリがインストールされているワークスペースの環境設定を、slack アプリが読み取れるようにします | ❌ |
| team:read | slack アプリが接続されているワークスペースの名前、メールドメイン、アイコンを表示します | ❌ |
| tokens.basic | スコープなしでメソッドを実行します | ❌ |
| triggers:read | 新しい Platform トリガーを読み取ります | ❌ |
| triggers:write | 新しい Platform トリガーを作成します | ❌ |
| usergroups:read | ワークスペース内のユーザーグループを表示します | ❌ |
| usergroups:write | ユーザーグループを作成および管理します | ❌ |
| users.profile:read | ワークスペース内のユーザーのプロフィール詳細を表示します | ❌ |
| users:read | ワークスペース内のユーザーを表示します | ✅ |
| users:read.email | ワークスペース内のユーザーのメールアドレスを表示します | ❌ |
| users:write | slack アプリのプレゼンスを設定します | ❌ |
| workflow.steps:execute | Workflow Builder でユーザーが使用できるステップを追加します | ❌ |
| workflows.templates:read | ワークフローテンプレートを読み取ります | ❌ |
| workflows.templates:write | ワークフローテンプレートを書き込みます | ❌ |
お問い合わせ
ご質問がございましたら、AVIMBU までお気軽にお問い合わせください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。