slack-read-mcp
A read-only MCP server for Slack that reads messages from channels the bot is invited to, without storing data. It provides tools to fetch channel history, thread replies, and resolve user IDs, with access controlled solely by channel invitations.
README
slack-read-mcp
Slack を読むだけの MCP サーバー。
Bot が招待されたチャンネルのメッセージを読みます。招待されていないチャンネルは、 チャンネル ID を正確に指定しても読めません。書き込みは一切できません。
サーバーもデータベースも使いません。利用者の PC 上で動き、Slack Web API を直接呼びます。 このサーバー自体は状態を持たず、メッセージを保存しません(取得のたびに Slack へ 問い合わせます)。
読んだ内容からタスク台帳や要約を手元に作るのは利用側の想定された使い方ですが、 全文アーカイブは作らない・転記物は元と同じ機密度で扱う、という線引きがあります。 詳細は GUIDE.md を参照してください。
設計
権限の実体は「Bot がどのチャンネルに招待されているか」だけです。
- インストールしただけでは一件も読めない
- 招待を外すと、トークンを変更せずに即座に読めなくなる
- パブリック/プライベートの別は関係ない。効いているのは招待の有無だけ
- 書き込みは Slack が API レベルで拒否する(スコープを付与していないため)
チャンネル一覧を取得する権限(channels:read)も付与しません。したがって、
Bot は自分が招待されていないチャンネルの存在を知ることができません。
読み取り対象は設定ファイルで指定します。
設定ファイルはアクセス制御ではありません。 そこに何を書いても、 招待されていないチャンネルは読めません。編集しても危険はありません。
セットアップ
導入作業を AI に任せる場合は、INSTALL.md を読ませてください。 環境(Node のバージョン、Slack アプリの有無)を確認したうえで、利用者にしかできない操作だけを 依頼するよう書かれています。以下は人間が自分で作業する場合の手順です。
1. Slack アプリを作る
api.slack.com/apps → Create New App → From a manifest を選び、
slack-app-manifest.json の内容を貼り付けます。
付与されるスコープは3つだけです。
channels:history 参加しているパブリックチャンネルのメッセージ
groups:history 参加しているプライベートチャンネルのメッセージ
users:read ユーザー ID から表示名への解決
作成後、ワークスペースへインストールして Bot User OAuth Token(xoxb- で始まる)を取得します。
2. Bot をチャンネルへ招待する
読みたいチャンネルで次を実行します。招待していないチャンネルは読めません。
/invite @slack-read-mcp
3. トークンと読み取り対象を配置する
設定はホームディレクトリの ~/.config/slack-read-mcp/ に置きます。MCP の設定ファイルや
環境変数にトークンを書く必要はありません。
~/.config/slack-read-mcp/
├── token Bot User OAuth Token(xoxb-…)を1行だけ
└── channels.json 読み取り対象のチャンネル一覧
トークンは、クリップボード経由にすると画面やコマンド履歴に出さずに配置できます。 順序に注意してください: ①下のコマンドを先にターミナルへ貼る(実行はまだ)→ ②Slack のページでトークンを Copy → ③ターミナルに戻って Enter。 トークンをコピーした後にコマンドをコピーすると、クリップボードが上書きされて消えます。
# Windows
New-Item -ItemType Directory -Force "$env:USERPROFILE\.config\slack-read-mcp" | Out-Null
Set-Content "$env:USERPROFILE\.config\slack-read-mcp\token" (Get-Clipboard).Trim() -NoNewline
Set-Clipboard "done" # 本物のトークンをクリップボードに残さない
# macOS / Linux
mkdir -p ~/.config/slack-read-mcp && pbpaste > ~/.config/slack-read-mcp/token && echo done | pbcopy
AI に導入を任せる場合は、この配置は AI がクリップボードから直接行います (INSTALL.md 参照。利用者はコピーだけ)。
channels.json は channels.example.json を参考に作ります。チャンネル ID は、
Slack でチャンネル名を右クリック →「リンクをコピー」で取得できます。
[
{ "id": "C0123456789", "name": "team-general" }
]
4. MCP クライアントに登録する
Claude Code の場合:
claude mcp add slack-read --scope local -- npx -y github:zio3/slack-read-mcp
推奨はローカルスコープ(この Slack に関わる作業フォルダにだけ登録)です。ユーザー
スコープは全プロジェクトに常駐するため、複数の顧客・業務を扱う PC では情報の混線経路に
なります。プロジェクトスコープはリポジトリ内に .mcp.json を作って共有してしまうため
不適切です。
設定の探索順
| 設定 | 優先1(環境変数) | 優先2(ファイル) |
|---|---|---|
| トークン | SLACK_BOT_TOKEN |
SLACK_TOKEN_FILE のパス → ~/.config/slack-read-mcp/token |
| 読み取り対象 | SLACK_CHANNELS_FILE のパス |
~/.config/slack-read-mcp/channels.json |
通常はファイルだけで動きます。環境変数は CI などで上書きしたい場合に使ってください。 なお環境変数を使う場合、変更は起動中のプロセスへ伝播しないため、ターミナルごと 再起動が必要になります。ファイル方式ならこの問題はありません(MCP クライアントの 再起動・再接続だけで反映されます)。
ツール
| ツール | 内容 |
|---|---|
list_channels |
設定ファイルに書かれた対象の一覧。Slack へは問い合わせない |
get_channel_history |
チャンネルのメッセージ取得。oldest で差分のみ取得可 |
get_thread_replies |
スレッド返信の取得 |
resolve_user |
ユーザー ID を表示名・実名に解決 |
使う AI に読ませるもの
GUIDE.md を最初に読み込ませてください。
Slack のデータ構造には、知らないと取りこぼしに気づけない箇所があります。
特に get_channel_history はスレッド返信を返しません。これを知らずに使うと、
返信のやり取りを丸ごと見落とし、しかも見落としたことに気づけません。
開発
npm install
npm run build
pwsh ./test-mcp.ps1 -Tool list_channels
test-mcp.ps1 は MCP サーバーを素の JSON-RPC で叩く確認用スクリプトです。
ビルドを挟まず TypeScript のまま実行することもできます(Node 22.6 以降)。
npm run start:ts # Node 22.6〜23.5(--experimental-strip-types 付き)
node src/index.ts # Node 23.6 以降(フラグ不要)
配布時にビルド方式を既定にしているのは、実行環境の Node バージョンに依存させないためです。 型ストリッピングはまだ experimental で、stderr に警告が出ます。
ライセンス
MIT
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。