概要
Slack APIに対応したMCPサーバーが公開されており、これはパブリックチャンネルの概要やメッセージ履歴にClaudeのデスクトップアプリなどのMCPクライアントからアクセスすることができるものになります。しかし、既存のままだとプライベートチャンネルの読み込みに対応していません。
この記事では、プライベートチャンネルの読み込みにも対応する方法について書いてあります。
※MCPについての詳細な説明は省略します
警告
プライベートチャンネルの情報を読み込ませることになるため、ワークスペースの管理者などに確認を取ってから導入することをおすすめします。
Slackアプリケーションの作成
まずは下記を参考にSlackアプリケーションを作成します。
今回必要な権限は以下のとおりで、プライベートチャンネルに関係するgroupsの権限も追加してあげます。
channels:history
、channels:read
、chat:write
、reactions:write
、users:read
、groups:history
、groups:read
MCPサーバーの事前準備
MCPサーバーに直接変更を加えるため、下記リポジトリをダウンロードしておいてください。
https://github.com/modelcontextprotocol/servers
プライベートチャンネルも読み込めるように修正
Slack APIに投げるパラメータが現状だと "public_channel"
のみなので、ローカル環境で "private_channel"
も追記してあげます。
https://github.com/modelcontextprotocol/servers/blob/fc5e6f4b68ec8fded6a6873098b6790b0294cf43/src/slack/index.ts#L225
- types: "public_channel",
+ types: "public_channel,private_channel",
Dockerでイメージ作成
プロジェクトのルートで下記コマンドを実行してDockerイメージをビルドします。
$ docker build -t mcp/slack -f src/slack/Dockerfile .
MCPクライアントでの設定(Claudeデスクトップアプリ)
上記を参考にしてclaude_desktop_config.json
に設定を追加してあげます。
{
"mcpServers": {
"slack": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"SLACK_BOT_TOKEN",
"-e",
"SLACK_TEAM_ID",
"mcp/slack"
],
"env": {
"SLACK_BOT_TOKEN": "xoxb-your-bot-token",
"SLACK_TEAM_ID": "T01234567"
}
}
}
}
実際に使ってみる
プライベートチャンネルにSlackアプリを招待したあとに、プロンプトで「{プライベートチャンネル名}の概要を要約してください」とでも聞いてみると無事アクセスできることが確認できるかと思います。