slack-mcp
MCP server for interacting with Slack using a user token. It allows reading channels, DMs, threads, search, and posting messages as the authenticated user.
README
slack-mcp
Slack を操作するための MCP サーバーです。Slack の user token (xoxp-) を使って、チャンネル・DM・スレッド・全文検索の読み取りと、メッセージの投稿を Claude(や他の MCP クライアント)から行えるようにします。
投稿・編集・削除はあなた本人の名前で行われます(bot ではありません)。
提供ツール
読み取り
| ツール | 説明 |
|---|---|
slack_whoami |
トークンの本人・ワークスペースを確認(動作確認用) |
slack_list_channels |
チャンネル / DM / グループDM の一覧(id を取得) |
slack_get_history |
チャンネル・DM の最近のメッセージを読む |
slack_get_activity |
期間指定でその期間の動きを全部取る。期間より前に立ったスレッドへの返信も拾う(週次サマリ向け) |
slack_get_thread |
スレッドの親+返信を展開 |
slack_search |
ワークスペース全体を全文検索(in:#ch from:@user 等の演算子対応) |
slack_list_users |
メンバー一覧(id → 名前解決) |
書き込み
| ツール | 説明 |
|---|---|
slack_post_message |
チャンネル・DM に投稿。thread_ts を渡すとスレッド返信になる |
slack_add_reaction |
メッセージに絵文字リアクションを付ける |
slack_update_message |
自分が書いたメッセージの本文を差し替える |
slack_delete_message |
自分が書いたメッセージを削除する(取り消し不可) |
必要なもの
- Node.js 20.11 以上(
.envの自動読み込みにprocess.loadEnvFileを使うため) - Slack の user token (xoxp-)(検索と DM 読み取りに必須)
セットアップ
1. Slack App を作成してトークンを取得(マニフェスト方式・おすすめ)
スコープを1つずつクリックせず、slack-app-manifest.yml を貼り付けて一括設定します。
- https://api.slack.com/apps を開く(Slack にログインした状態で)。
- Create New App → From a manifest を選ぶ。
- トークンを取りたいワークスペースを選択 → Next。
- フォーマットを YAML に切り替え、
slack-app-manifest.ymlの中身を丸ごと貼り付け → Next → Create。 - 左メニュー OAuth & Permissions を開き、上部の Install to Workspace → 内容を確認して 許可する。
- 表示された User OAuth Token(
xoxp-...で始まる)をコピーする。これがSLACK_TOKENです。
スコープを手動で設定したい場合は、User Token Scopes に次を追加します:
channels:read,channels:history,groups:read,groups:history,im:read,im:history,mpim:read,mpim:history,search:read,users:read,chat:write,reactions:write
注意: user token は「あなた本人」の権限で Slack を読み書きします。投稿・編集・削除も あなた本人の発言として記録されます。取り扱いは慎重に。
2. インストール
git clone https://github.com/EgumaYuto/slack-mcp.git
cd slack-mcp
npm install
3. 動作確認
SLACK_TOKEN=xoxp-... npm start
または、リポジトリ直下に .env を置く方法(トークンを起動コマンドに書かずに済む・おすすめ):
cp .env.example .env # .env を作成
# .env を開いて SLACK_TOKEN=xoxp-... を実際のトークンに書き換える
npm start # サーバーが .env を自動で読み込む
.env は .gitignore 済みなのでコミットされません。.env の場所はこのリポジトリの直下(src/ の隣、.env.example と同じ場所)です。
[slack-mcp] running on stdio と出れば起動 OK です(stdin を待ち続けるので Ctrl+C で終了)。
既存アプリに投稿権限を追加する
以前の読み取り専用版からアップデートした場合、投稿系ツールには chat:write と
reactions:write が追加で必要です。Bot User の追加やイベント購読は不要で、
User Token Scopes を増やすだけです。
- https://api.slack.com/apps → 対象のアプリを開く。
- 左メニュー App Manifest を開く。
oauth_config.scopes.userにchat:writeとreactions:writeを追記 → Save Changes。- スコープ変更の警告が出るので、OAuth & Permissions → Reinstall to Workspace で再インストール → 許可する。
- User OAuth Token が新しい値に変わるので、コピーして
.envのSLACK_TOKEN=を差し替える。
App Manifest 画面に
display_information.nameを含めて貼り替えると、アプリの表示名も 変わります。名前を変えたくない場合はscopesの2行だけ追記してください。
Claude Code への登録
.env を使う場合はトークンを渡さずに登録できます:
claude mcp add slack --scope user -- node /ABSOLUTE/PATH/TO/slack-mcp/src/index.js
.env を使わず直接渡す場合:
claude mcp add slack --scope user --env SLACK_TOKEN=xoxp-... -- node /ABSOLUTE/PATH/TO/slack-mcp/src/index.js
claude mcp list で slack が出れば登録完了です。Claude Code の中で「#general の最近のメッセージを読んで」のように依頼できます。
Claude Desktop への登録
claude_desktop_config.json に追記:
{
"mcpServers": {
"slack": {
"command": "node",
"args": ["/ABSOLUTE/PATH/TO/slack-mcp/src/index.js"],
"env": { "SLACK_TOKEN": "xoxp-..." }
}
}
}
同梱の Skill
skill/slack-reader/ に、このサーバーの使い方をまとめた Claude Code 用 Skill を同梱しています。ユーザー全体で使うには:
cp -R skill/slack-reader ~/.claude/skills/
トラブルシューティング
-
missing_scope: 上記スコープを追加して Reinstall し、トークンを取り直す。 -
not_allowed_token_type:search.messagesは bot token では使えません。user token を使ってください。 -
invalid_auth: トークンが失効/誤り。再取得する。 -
channel_not_found: user token でも自分が参加していないチャンネルは読めません。投稿する場合も、 先にそのチャンネルに参加している必要があります。 -
not_in_channel: 投稿しようとしたチャンネルに参加していません。Slack 上で join してください。 -
cant_update_message/cant_delete_message: 他人のメッセージは編集・削除できません。 user token の本人が書いたものだけが対象です(slack_whoamiで本人を確認できます)。 -
already_reacted: そのリアクションは既に自分が付けています。 -
fetch failed: Slack の認証エラーではなくネットワーク遮断です。Claude Code のサンドボックスが MCP サーバープロセスの通信をブロックしている場合に起きます。~/.claude/settings.jsonに Slack を許可ドメインとして追加してください:{ "sandbox": { "network": { "allowedDomains": ["slack.com", "*.slack.com"] } } }切り分け方:
node -e 'fetch("https://slack.com/api/api.test").then(r=>console.log(r.status))'がターミナルでは成功するのに MCP 経由だけfetch failedになるなら、この設定が原因です。
ライセンス
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 模型以安全和受控的方式获取实时的网络信息。