Slack MCPサーバーの接続手順と権限設計|公式版とOSS版の選び分け【2026年版】

Slack MCPサーバーの接続手順と権限設計|公式版とOSS版の選び分け【2026年版】

Slack MCPサーバーは、Slackが https://mcp.slack.com/mcp で提供するリモート型のMCPサーバーです。Claude CodeやCursorからSlackのメッセージを検索し、投稿やcanvas作成まで任せられます。この記事では、Claude Codeへの接続手順と .mcp.json の中身、curlで取得したOAuthメタデータから読める認可の前提、自社のSlackアプリでつなぐときに詰まる箇所を一次情報で確認します。後半は公式版とOSS版の選び分けと、監査ログを使った運用設計です。

まとめ:Slack MCPで最初に決める接続先と認可方式と管理者承認

会社のワークスペースで使うなら、接続先はSlack公式のリモートサーバー一択です。公式版はユーザー本人のOAuthで動き、読める範囲は本人が見えるチャンネルに限られます。管理者がアプリを承認しない限り認証が通らないため、情報システム部門の統制下に置けます。

導入前に決めるのは3点。使うAIクライアント(開発者ドキュメントが挙げるのはClaude.ai・Claude Code・Perplexity・Cursorの4つ)、承認するスコープの範囲(公式サーバーが受け付けるのは30種類)、操作の追跡方法です。AIが読んだチャンネルを監査ログで追えるのはEnterpriseプランだけになります。ブラウザのセッショントークンで承認を経ずに動くOSS版は、個人の検証用と割り切ってください。

Slack MCPの2つの向きと公式サーバーmcp.slack.comが担う範囲

MCPそのものの仕組みはMCPの仕組みとMCPサーバーの作り方で解説しています。Slackの場合は接続の向きが2つあり、どちらを指すかで設定がまったく異なります。

外部AIからSlackを読むサーバー側とSlackbotが外部を呼ぶクライアント側

1つ目は、外部のAIクライアントがSlackのデータを読む向きです。SlackがMCPサーバーになり、Claude Codeなどが接続します。この記事で扱うのはこちら。

2つ目は、SlackbotがMCPクライアントとして外部のMCPサーバーを呼ぶ向きで、2026年6月にSlack公式ブログで発表されました。LinearやCanva、Zoomなどを会話からSlackbotに操作させる機能です。Slack内で@Claudeに仕事を頼むClaude Tagの仕組みと旧appからの移行もSlack側からAIを呼ぶ向きに属し、本記事の手順とは別物になります。

公式サーバーが提供する検索・送信・canvas・リストのツール構成

Slack MCP server overviewによると、ツールは検索、メッセージ、canvas、ユーザー、ファイル、リストの6系統です。公式プラグインのスキル定義と監査ログのアクション名から、主なツール名を拾うと次のようになります。

  • 検索:slack_search_public、slack_search_public_and_private、slack_search_users
  • 読み取り:slack_read_channel、slack_read_thread、slack_read_canvas
  • 書き込み:slack_send_message、slack_create_canvas、slack_update_canvas
  • ファイル:slack_get_file_upload_url で署名付きURLを得てPOSTし、slack_complete_file_upload で確定

実務でまず使うのは検索と読み取りです。検索で拾えるのは条件に合う個々のメッセージなので、議論の経緯まで読ませるなら、見つけたメッセージのスレッドを slack_read_thread で取り直す組み立てになります。

2026年2月の公開と同時にRTS APIへ改称されたData Access API

公式サーバーは2026年2月17日の変更履歴で発表され、同じ日に従来のData Access APIがリアルタイム検索API(RTS API)へ改称されました。

MCPサーバーはLLMが読む前提で、ツール説明と自然文の応答を返します。一方のRTS APIは、AIに直接つながず自社アプリから assistant.search.context を呼ぶ経路です。検索結果を加工してからLLMへ渡したいならRTS API、市販のAIクライアントから使うならMCPサーバー、と分けられます。どちらもMarketplace掲載アプリか社内アプリに限られる点は同じです。

Claude CodeからSlack公式MCPへ接続する手順と.mcp.jsonの中身

Claude Codeでつなぐ経路は、公式プラグインを入れる方法と設定ファイルを直接書く方法の2つです。

公式プラグインを/plugin installで入れるいちばん短い導入経路

Slackはslackapi/slack-skills-pluginでプラグインを公開しており、2026年9月27日時点の版は1.4.0系です。Claude Codeの中で次を実行します。

/plugin install slack@claude-plugins-official

初めてSlackのツールを呼ぶとブラウザでOAuth同意画面が開き、許可すれば接続は完了です。/slack:summarize-channel などのスラッシュコマンド5種も同梱されています。Codex版はスキルだけの提供で、MCPサーバーは組み込まれていません。

プラグインを使わず.mcp.jsonに固定clientIdと3118番を書く設定

プラグインが使う設定は、リポジトリ直下の .mcp.json に書かれています。プロジェクト単位で共有するなら同じ内容を置けば動きます。

{
  "mcpServers": {
    "slack": {
      "type": "http",
      "url": "https://mcp.slack.com/mcp",
      "oauth": {
        "clientId": "1601185624273.8899143856786",
        "callbackPort": 3118
      }
    }
  }
}

公式サーバーはDynamic Client Registrationに対応していません。そのためSlack側に事前登録されたアプリのclient IDを書く必要があり、この値はSlackが用意したClaude向けアプリのものです。リダイレクトURIは http://localhost:3118/callback で登録されているので、ポート番号を変えると認証が通らなくなります。

管理者承認が済んでいないときに認証で止まる箇所と社内申請の順序

公式リポジトリのREADMEが制限事項に挙げるのは、ワークスペース管理者がMCP連携を承認しないと認証できない点だけです。承認前に試すと同意画面の段階で先へ進めません。社内展開は次の順が手戻りの少ない進め方です。

  1. 使うAIクライアントと、そのクライアント用のSlackアプリ名を確認する
  2. 必要なスコープを読み取り系と書き込み系に分けて一覧にする
  3. 情報システム部門へ承認を申請し、許可するスコープの範囲を合意する
  4. 承認後に /mcp から認証し、自分の見えるチャンネルだけが返るか確かめる

組織契約のclaude.aiから使う場合は、AIクライアント側でも管理者がコネクターを許可しているかを確かめてください。

curlでOAuthメタデータを取得して認可方式と30スコープを確かめる

公式サーバーの要求は、トークンを持たないままでも調べられます。MCPの仕様どおり、認可に必要な情報を公開エンドポイントで返しているためです。

401応答のWWW-Authenticateから保護リソースメタデータへたどる手順

まずトークンを付けずにPOSTします。

curl -i -X POST https://mcp.slack.com/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

2026年9月27日の実行では 401 Unauthorized が返り、ヘッダに次の1行が入っていました。

www-authenticate: Bearer resource_metadata="https://mcp.slack.com/.well-known/oauth-protected-resource"

このURLと認可サーバーのメタデータを続けて取得します。

curl -s https://mcp.slack.com/.well-known/oauth-protected-resource
curl -s https://mcp.slack.com/.well-known/oauth-authorization-server

接続に失敗したとき、クライアントの不具合かサーバー側の要求かを切り分ける材料になります。

client_secret_postとS256が示す機密クライアント前提の意味

認可サーバーのメタデータから、設計に効く値を抜き出します(2026年9月27日の実測)。

  • authorization_endpoint は oauth/v2_user/authorize:ボットでなくユーザートークンを発行する
  • token_endpoint_auth_methods_supported は client_secret_post のみ:トークン交換にclient secretが要る
  • code_challenge_methods_supported は S256:PKCEを併用できる
  • grant_types_supported に refresh_token:更新トークンで再認証を減らせる

公式ドキュメントも「Slack supports confidential OAuth for MCP clients」と書いています。自社でクライアントを作るなら client_id と client_secret の両方が前提で、secretを安全に持てないデスクトップアプリは後述のPKCEを検討することになります。

ツールごとに要るユーザートークンのスコープと承認時に外す候補

保護リソースメタデータの scopes_supported には30種類が並んでいました。承認申請では用途ごとに束ねて示すと話が通りやすくなります。

用途 代表スコープ 区分
メッセージ検索 search:read.public 読み取り
DMの検索 search:read.im 読み取り
チャンネル履歴 channels:history 読み取り
DMの履歴 im:history 読み取り
投稿・予約送信 chat:write 書き込み
canvas作成・更新 canvases:write 書き込み

情報漏えいの観点で最も重いのは search:read.im と im:history の2つで、DMの中身までAIの文脈に流れます。社内規程でDMを対象外にしたい組織は、この2つを外して承認するよう依頼してください。ツール単位の権限の絞り方はMCPのtool定義と権限・認可の設計手順で一般化して整理しています。

自社アプリで公式MCPへつなぐ場合に詰まるリダイレクトURIとPKCE

承認済みアプリを増やしたくない、監査ログで自社アプリとして識別したい、といった理由で自社登録のSlackアプリを使う場面があります。この経路には既知の詰まりどころが3つあります。

自社のclientIdに差し替えるとredirect_uriが一致しない不具合

公式リポジトリのIssue #21(2026年3月起票・9月27日時点でopen)では、client IDを自社アプリに差し替えると「redirect_uri did not match any configured URIs」で失敗すると報告されています。自社アプリに http://localhost:3118/callback を登録しようとしても、設定画面がhttpsで始まらないURLを受け付けないためです。

Claude Code側は、Claude CodeのMCP接続ドキュメントどおり次の形で自社アプリの資格情報を渡せます。

claude mcp add --transport http \
  --client-id your-client-id --client-secret --callback-port 8080 \
  slack https://mcp.slack.com/mcp

--client-secret は実行時にマスク入力で求められ、secretは設定ファイルでなくOSのキーチェーンか資格情報ファイルに保存されます。とはいえSlack側がlocalhostのリダイレクトを受け付けない限り、このコマンドだけでは解決しません。

PKCEを有効化すると公開クライアントに固定され戻せない制約

SlackのPKCEガイドによると、PKCEを有効にしたアプリでは localhost へのリダイレクトがデスクトップ向けとして扱われます。localhost登録を通す手がかりはここにある一方、代償も大きい設定です。

  • アプリが公開クライアント扱いになり、Slackサポートに連絡しない限り戻せない
  • リフレッシュトークンの有効期限が無期限から30日に変わる
  • デスクトップ向けリダイレクトではボットのスコープを要求できない

既存の社内ボットのアプリで有効にすると、ボット側の運用まで巻き込みます。試すならMCP接続専用のアプリを新しく作ってください。なおClaude Code v2.1.229には送信するリダイレクトURIが 127.0.0.1 表記になる不具合があり、v2.1.231で localhost 表記に戻っています。

並行セッションで3118番が衝突してOAuthが完了しない事象

公式設定はコールバックを3118番に固定しているため、同じマシンで複数のClaude Codeセッションが同時に認証すると2つ目以降が失敗します。Issue #46(2026年6月起票・9月27日時点でopen)で報告されている事象です。認証は1セッションずつ済ませれば、保存されたトークンで以降のセッションは再認証なしに動きます。

公式リモート版とOSSのSlack MCPサーバーを選び分ける判断基準

公式版が出る前から、Slack向けのMCPサーバーはOSSで複数公開されていました。検索上位の記事にもOSS版の設定例が混ざっているため、どちらの手順かを見分ける必要があります。

参照実装のSlackサーバーが保守終了のアーカイブへ移された経緯

MCPの公式リポジトリにあった参照実装のSlackサーバーは、servers-archivedへ移されました。リポジトリ自体がアーカイブ扱いで、説明文は「Reference MCP servers that are no longer maintained」です。SLACK_BOT_TOKEN と SLACK_TEAM_ID を環境変数で渡す設定例は、この参照実装か派生版の手順と判断できます。保守が止まった実装を新しく社内へ入れる理由はありません。

ボットトークン型とブラウザトークン型のOSS版に潜む統制の穴

現役のOSS版で利用者が多いのはkorotovsky/slack-mcp-serverで、2026年5月14日にv1.3.0が出ています。stdio・SSE・HTTPの3方式で動く高機能な実装です。

問題はトークンの種類にあります。READMEは「stealth mode」として、ブラウザのセッショントークン(xoxc / xoxd)なら追加の権限もボットのインストールも要らないと説明しています。管理者承認を経ずに、本人が見える全チャンネルをAIへ流せる状態です。情報システム部門からは接続そのものが見えません。ボットトークン(xoxb)なら招待されたチャンネルしか読めず範囲は狭まりますが、READMEのとおり search.messages が使えず横断検索ができなくなります。

会社のワークスペースで公式版を採用しOSS版を見送る判断の条件

観点 公式リモート版 OSS版(korotovsky)
トークン ユーザーOAuth xoxc・xoxp・xoxbから選択
管理者承認 必須 stealth modeでは不要
監査ログ MCP専用アクションで記録 MCP専用アクションには残らない
実行場所 Slackのサーバー 自分のPCかサーバー

判断は言い切れます。会社が契約するワークスペースでは公式版を採用し、OSS版のstealth modeは使いません。規程上の問題に加え、退職者のブラウザトークンが誰かのPCに残り続ける経路を作るためです。OSS版を選んでよいのは、個人のワークスペースや開発者サンドボックスで挙動を試す場面と、公式版が対応していないAIクライアントからの検証に限られます。

社内導入で情報持ち出しを抑えるレート制限と監査ログの運用設計

接続できたあとに問題になるのは、AIがどれだけの量をどの頻度で読むかです。公式版はWeb APIと同じ枠で制限と記録が掛かるので、その前提で運用を組みます。

Tier2の毎分20回を前提にしたチャンネル一覧取得の組み立て方

公式ドキュメントは、MCP経由でもWeb APIを直接呼んでもツールごとに同じレート制限が掛かると明記しています。チャンネル検索・参加チャンネル一覧・canvas作成はTier 2(毎分20回以上)、チャンネルとスレッドの読み取りはTier 3(毎分50回以上)、プロフィールやメンバー一覧はTier 4(毎分100回以上)です。

「全チャンネルを要約して」と頼むと、AIは一覧を取ってから1つずつ履歴を読みにいきます。一覧取得がTier 2なので、ページ送りを重ねると上限に届く計算です。チャンネル名と期間を指定して依頼する運用ルールにすれば、制限にも持ち出し量にも効きます。定型の通知を流すだけならSlack Webhookで通知を送る実装のほうが単純で、AIに読み取り権限を渡さずに済みます。課題管理のBacklogを同じようにAIへつなぐ場合の権限の絞り方は、Backlog MCPサーバーの導入手順と削除系ツールの封じ方で整理しています。

監査ログのmcp_slack_*_tool_calledでAIの操作を追跡する方法

Audit Logs APIのアクション一覧にはSlack MCPサーバー専用の節があり、mcp_slack_read_channel_tool_called や mcp_slack_send_message_tool_called など11種類が定義されています。取得は次の形で、oldest はUNIX時刻です。

curl -s "https://api.slack.com/audit/v1/logs?oldest=1788000000&action=mcp_slack_read_channel_tool_called,mcp_slack_search_public_and_private_tool_called" \
  -H "Authorization: Bearer $SLACK_AUDIT_TOKEN"

このAPIはEnterpriseプラン限定で、トークンもオーガナイゼーションのオーナーに紐づき auditlogs:read を持つ xoxp に限られます。それ以外のプランではAIの読み取りを事後に追えないため、承認するスコープを絞る判断がより重くなります。

他のMCPサーバーと同時接続するときの経路分離とIP許可リスト

公式ドキュメントのセキュリティ節は、他のMCPサーバーとの同時利用に注意を促しています。Slackで読んだ社内の議論が、同じ会話の中で別のMCPサーバーのツール引数として外部へ送られる経路があるからです。社外のWeb検索や外部SaaSへの書き込みツールを同じセッションに並べないことが、運用上の最低線になります。

自社アプリでつなぐ場合、Slackアプリに設定したIP許可リストはMCPサーバーへのリクエストにも適用されます。社内プロキシ経由でしか接続させない構成にすれば、私物PCからの接続を止められるわけです。Slackと基幹システムをまたいで動くAIエージェントを権限と経路の設計から作りたい場合は、生成AI開発・AI受託開発の範囲でご相談いただけます。

よくある質問

Slack MCPの導入検討でよく出る疑問に、公式ドキュメントとGitHubの記載をもとに回答します。

Slack MCPは無料プランのワークスペースでも使えますか?

公式の開発者ドキュメント(2026年9月27日時点)に、プランによる利用条件の記載はありません。書かれている条件は、管理者によるアプリの承認と、Marketplace掲載アプリか社内アプリであることの2点です。ただしプラン側で絞られている機能はツール経由でも同じ扱いになると考え、自社のプランで検索・投稿・canvas作成が通るかを1つずつ確かめてから展開してください。

管理者権限がない一般ユーザーでも自分だけ接続できますか?

公式版はできません。ワークスペース管理者がアプリを承認していないと、OAuthの同意画面で止まります。使うAIクライアントと必要なスコープを添えて、情報システム部門へ申請するのが先です。承認なしで動くOSS版のstealth modeは、会社のワークスペースでは規程違反になりやすく、退職時にトークンを回収できない問題も残ります。

AIが投稿したメッセージは誰の名前で表示されますか?

公式版はユーザートークンで動くため、認証した本人の名前で表示されます。ボットとして投稿させたい場合、公式ドキュメントはボットトークンを別途発行する手順を案内しており、MCPの設定だけでは切り替わりません。本人名義になる前提で、AIに送信まで任せるか、つまり chat:write を承認するかを社内で決めておくと、誤送信時の責任の所在で揉めずに済みます。

CodexやGemini CLIからもSlack公式のMCPを使えますか?

2026年9月27日時点では使えません。公式プラグインのREADMEによると、Codex向けはスキルだけの提供で、npx skills でGemini CLIなどへ入れる経路もスキルだけです。開発者ドキュメントが挙げるクライアントはClaude.ai、Claude Code、Perplexity、Cursorの4つで、ヘルプセンターのパートナー一覧にはChatGPTやDevinも並びます。一覧にないツールから使うには、自社のSlackアプリを登録してOAuthを実装する必要があります。

AIがどのチャンネルを読んだか後から確認できますか?

EnterpriseプランならAudit Logs APIで確認できます。mcp_slack_read_channel_tool_called などMCP専用のアクションが記録され、どのユーザーの代理で読んだかが残ります。Enterprise以外ではこのAPIが使えないため、読ませるチャンネルを依頼時に指定する運用ルールと、DM系スコープを承認しない設定で、範囲を先に絞っておく方法が現実的です。

関連記事

お気に入りに入れた記事の一覧

資料請求

RELATED POSTS 関連記事

目次