Skip to main content
Glama
EgumaYuto

slack-mcp

by EgumaYuto

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

自分が書いたメッセージを削除する(取り消し不可

Related MCP server: Slack MCP Server

必要なもの

  • Node.js 20.11 以上(.env の自動読み込みに process.loadEnvFile を使うため)

  • Slack の user token (xoxp-)(検索と DM 読み取りに必須)

セットアップ

1. Slack App を作成してトークンを取得(マニフェスト方式・おすすめ)

スコープを1つずつクリックせず、slack-app-manifest.yml を貼り付けて一括設定します。

  1. https://api.slack.com/apps を開く(Slack にログインした状態で)。

  2. Create New AppFrom a manifest を選ぶ。

  3. トークンを取りたいワークスペースを選択 → Next。

  4. フォーマットを YAML に切り替え、slack-app-manifest.yml の中身を丸ごと貼り付け → Next → Create。

  5. 左メニュー OAuth & Permissions を開き、上部の Install to Workspace → 内容を確認して 許可する

  6. 表示された User OAuth Tokenxoxp-... で始まる)をコピーする。これが 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:writereactions:write が追加で必要です。Bot User の追加やイベント購読は不要で、 User Token Scopes を増やすだけです。

  1. https://api.slack.com/apps → 対象のアプリを開く。

  2. 左メニュー App Manifest を開く。

  3. oauth_config.scopes.userchat:writereactions:write を追記 → Save Changes

  4. スコープ変更の警告が出るので、OAuth & PermissionsReinstall to Workspace で再インストール → 許可する。

  5. User OAuth Token が新しい値に変わるので、コピーして .envSLACK_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 listslack が出れば登録完了です。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

A
license - permissive license
-
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    -
    quality
    D
    maintenance
    This MCP server provides integration with the Slack API via HTTP transport, allowing for channel management and message operations. It enables users to list channels, send or edit messages, search message history, and retrieve user information through standardized tools.
    53
    MIT

View all related MCP servers

Related MCP Connectors

  • Personal assistant MCP server with search, execute, packages, jobs, secrets, and integrations.

  • Catch up on Slack without reading it. Unreads, threads, search. Browser-session or hosted OAuth.

  • A basic MCP server to operate on the Postman API.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/EgumaYuto/slack-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server