モデル / データセット
korotovsky/slack-mcp-server avatar
korotovsky/slack-mcp-server

korotovsky/slack-mcp-server を権限なしで運用するときの実際の判断基準

The most powerful MCP Slack Server with no permission requirements, Apps support, GovSlack, DMs, Group DMs and smart history fetch logic.

スター 1,828フォーク 367GoMIT
GitHub

ひと目でわかる

これは何?
Slack ワークスペースを MCP 経由で LLM クライアントに接続する Go 製サーバー。トークンの種類によって使えるツールが変わる点と、stealth モードの代償を中心に、導入前に確認すべき境界を整理する。
誰に向いている?
採用すべきなのは、Slack の管理者権限を持たずに自分のアカウントの会話履歴を LLM クライアントから読みたい個人や小規模チームである。逆に、監査ログや権限の一元管理が要件にある組織、複数人でトークンを共有する運用、メッセージ投稿を自動化したいケースには向かない。
商用利用できる?
できます。MIT は寛容なライセンスで、著作権表示とライセンス表示を残せば、使用・改変・販売が可能です。
今もメンテナンスされている?
されています。最後のコミットは 61 日前です。
何の言語で書かれている?
主に Go です(GitHub の言語統計による)。

回答はプロジェクトの GitHub データ(最終同期:2026年9月15日)と当サイトの分析に基づくもので、法的助言ではありません。

オープンソース詳細解説

Slack の会話を LLM に読ませるまでに何が詰まるか

Slack のデータを LLM クライアントから扱おうとすると、最初にぶつかるのは認可の壁である。Slack アプリを作るにはワークスペースの管理者承認が要り、必要なスコープを申請して審査を通し、ボットを各チャンネルに招待する。個人が自分の会話履歴を読みたいだけの場合、この手続きは明らかに過剰である。korotovsky/slack-mcp-server はこの手続きを回避する経路を用意している。README の表現を借りれば、complete stealth mode with no permissions and scopes in Workspace で動かせる。対象読者は、Slack の管理者権限を持たない開発者、あるいは承認フローを待たずに検証したいエンジニアである。もう一方で、OAuth トークンを使う正規の経路も同じバイナリで扱えるため、管理者承認が下りた後に設定を切り替えるという使い方もできる。

3つのトランスポートと、トークン種別で変わるツールの可用性

サーバーは Stdio、SSE、HTTP の3種類のトランスポートに対応し、外向きの通信はプロキシ経由にできる。MCP クライアント側がどのトランスポートを話せるかで選ぶ形になる。ツールは conversations_history、conversations_replies、conversations_add_message、conversations_search_messages の4つが README に記載されている。ここで見落とされやすいのが、conversations_search_messages に関する注記である。README は This tool is not available when using bot tokens (xoxb-*) と明記し、理由として Bot tokens cannot use the search.messages API を挙げている。つまり xoxb- で始まるボットトークンで運用すると、検索ツールは事実上存在しないものとして設計しなければならない。逆にユーザートークンや stealth モードのトークンでは検索が使える。ツール一覧だけを見て「4つ使える」と判断すると、本番で気づくことになる。

stealth モードが成立する仕組みと、そこで失うもの

stealth モードは、ブラウザのセッションから取り出した xoxc トークンと xoxd クッキーを組み合わせて Slack の内部 API を叩く方式である。README はこれを no permission requirements と表現している。アプリのインストールもスコープ承認も不要な代わりに、この資格情報は Slack の公式な開発者向けインターフェースではない。したがって、パスワード変更やサインアウト、管理者によるセッション失効でトークンは無効になり、その時点でサーバーは黙って失敗する可能性がある。ここは README が明示的に保証している領域ではなく、私の側でも検証していない。設計上のトレードオフとして、承認コストをゼロにする代わりに、資格情報の寿命を自分で管理する責任を負うことになる。OAuth モードは README いわく secure OAuth tokens for access without needing to refresh or extract tokens from the browser であり、この寿命問題を引き受ける形になる。

Smart History の limit 指定と cursor の排他関係

履歴取得のパラメータ設計は独特である。conversations_history と conversations_replies の limit は、メッセージ件数ではなく時間範囲でも指定できる。README の例では 1d、1w、30d、90d といった形式と、50 のような件数指定の両方が挙げられている。90d については which is a default limit for free tier history と注記されており、無料プランの履歴上限を意識した既定値だと読める。もう一点、limit は Must be empty when 'cursor' is provided と明記されている。ページングを進めるときは limit を送ってはいけない。件数と時間範囲という異なる単位を同じキーに載せ、cursor 併用時は空にするという仕様は、クライアント側の実装を誤りやすくする。ページング処理を書くなら、最初の呼び出しだけ limit を付け、以降は cursor のみを送る分岐を明示的に用意したい。

セットアップで実際に触る環境変数

導入時の設定は環境変数が中心になる。README で名前が確認できるのは SLACK_MCP_ADD_MESSAGE_TOOL である。メッセージ投稿は既定で無効になっており、この変数を設定して初めて conversations_add_message が有効になる。値をカンマ区切りのチャンネル ID リストにすると、those specific channels に限定して投稿を許可できる。つまり全チャンネルに書き込める状態と、特定チャンネルだけに書ける状態を、同じ変数の書式で切り替える設計である。読み取り専用で使うなら、この変数を未設定のままにするのが最も安全な既定と言える。トランスポートの選択とプロキシ設定、stealth モードと OAuth モードの切り替えも環境変数で行うが、README の抜粋には個々のキー名までは現れていない。設定ファイルの雛形や全キーの一覧はリポジトリ本体で確認する必要がある。

投稿ツールを有効にする前に考えること

conversations_add_message が既定で無効なのは、単なる慎重さではなく、LLM に書き込み権限を渡すことの危険性を踏まえた判断だと読める。payload は text/markdown または text/plain で渡し、thread_ts を省略すればチャンネル本体、指定すればスレッドへの返信になる。channel_id は Cxxxxxxxxxx 形式のほか、#general や @username_dm のような名前でも受け付ける。名前で指定できる利便性は、裏を返せばエージェントが意図しないチャンネルに投稿する余地を広げる。SLACK_MCP_ADD_MESSAGE_TOOL にチャンネル ID のリストを入れておけば、名前解決の結果が許可リストの外に出た時点で拒否される。読み取り専用で始め、本当に投稿を自動化したいチャンネルだけを ID で列挙する、という順序が現実的である。

公式の Slack MCP サーバーとの設計差

比較対象として素直なのは Slack 自身が提供する MCP サーバーである。違いは認可の経路にある。公式側は Slack アプリの作成とスコープ承認、ワークスペース管理者の同意を前提とし、その代わりに権限の範囲が Slack 側で管理され、失効も管理者操作で完結する。korotovsky/slack-mcp-server はこの承認を経ずに動く経路を用意し、その代わりに資格情報の取得と更新を利用者側の作業に落とす。どちらが優れているという話ではなく、管理コストを組織側に寄せるか個人側に寄せるかの違いである。加えて GovSlack がトピックに挙がっている点は、公式サーバーが対象としない環境を狙っていることを示す。ただし GovSlack 固有の設定手順は README の抜粋からは読み取れない。

ライセンスと更新の追い方

ライセンスは MIT である。変更を加えた再配布や商用利用の条件は MIT の条文に従う。ここから先は法的助言ではないが、組織で使う場合は自組織のポリシー担当に確認するのが前提になる。保守の面では、リポジトリはアーカイブされておらず、v1.3.0 が 2026-05-14、v1.2.3 が 2026-03-03、v1.2.2 が 2026-02-25 と、短い間隔でリリースが続いている。Slack 側の非公開 API に依存する stealth モードを選ぶ以上、Slack 側の変更でツールが壊れる可能性は常にある。どのリリースで何が変わったかは release notes を確認する必要があり、この記事の材料からは各版の差分までは分からない。バージョンを固定して使い、更新前に release notes を読む運用が、この依存関係の性質には合っている。

編集部の結論

採用すべきなのは、Slack の管理者権限を持たずに自分のアカウントの会話履歴を LLM クライアントから読みたい個人や小規模チームである。逆に、監査ログや権限の一元管理が要件にある組織、複数人でトークンを共有する運用、メッセージ投稿を自動化したいケースには向かない。導入前に確認すべきは3点で、第一に使うトークンの種類で conversations_search_messages が動くかどうか、第二に stealth モードで使う xoxc/xoxd の寿命と失効時の再取得手順、第三に SLACK_MCP_ADD_MESSAGE_TOOL の設定値が空のままであること。このうちどれかが確認できないなら、このサーバーを本番の業務フローに組み込む判断は保留したほうがよい。

公式情報源

  1. Issues
  2. korotovsky/slack-mcp-server on GitHub
  3. License: MIT
  4. README
  5. Releases
コミュニティノート

コミュニティノート