mcpField
S
slack-mcp-server

slack-mcp-server

ローカル
github.com/stevenvoコミュニケーション141 週間前に更新

slack-mcp-server について

slack-mcp-serverは、AIアシスタントをSlackワークスペースの会話やメタデータに接続します。メッセージやスレッドの閲覧、会話の検索、チャンネルとユーザーの詳細取得に対応します。

主な機能

  1. 01チャンネルメッセージとスレッドの閲覧
  2. 02会話の検索
  3. 03チャンネル一覧とメタデータの確認
  4. 04ユーザープロフィールの参照
  5. 05メッセージのパーマリンク生成

活用シーン

  1. 01チャンネルの最近の議論を把握
  2. 02スレッド全体から背景を取得
  3. 03会話から決定事項やメンションを検索
  4. 04チャンネルやユーザーの詳細を確認

MCP 対応

MCPサーバーは、Slackのメッセージやスレッドの閲覧、会話検索、チャンネル一覧、チャンネル・ユーザー情報の取得、パーマリンク生成を行う7つのツールを公開します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"stevenvo-slack": {
"command": "uvx",
"args": [
"slack-mcp-server-v2"
],
"env": {
"SLACK_USER_TOKEN": "<SLACK_USER_TOKEN>",
"SLACK_BOT_TOKEN": "<SLACK_BOT_TOKEN>",
"SLACK_WORKSPACE_URL": "<SLACK_WORKSPACE_URL>"
}
}
}
}
起動コマンドuvx slack-mcp-server-v2
設定が必要な環境変数
SLACK_USER_TOKENシークレットSlack User OAuth Token (starts with xoxp-). Get from https://api.slack.com/apps
SLACK_BOT_TOKENシークレットSlack Bot User OAuth Token (starts with xoxb-). Alternative to user token.
SLACK_WORKSPACE_URLYour Slack workspace URL (e.g., https://your-company.slack.com). Required for generating message links.

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypislack-mcp-server-v20.1.0

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Slack MCP サーバー

PyPI Python Version License: MIT

Slack の会話、スレッド、ワークスペース情報へのプログラムによるアクセスを提供する Model Context Protocol(MCP)サーバーです。Claude などの AI アシスタントが、標準化されたインターフェースを通じて Slack ワークスペースとやり取りできるように設計されています。

MCP とは?

Model Context Protocol は、AI アシスタントが外部データソースやツールに安全にアクセスできるようにするオープンスタンダードです。このサーバーは MCP を実装し、Claude が Slack ワークスペースに直接アクセスできるようにします。

機能

📨 メッセージ操作
  • チャンネルのメッセージを読む:時間による柔軟なフィルタリングで、任意のチャンネルから最近のメッセージを取得します
  • スレッドのメッセージを読む:すべての返信を含む、会話スレッド全体にアクセスします
  • メッセージのパーマリンクを取得:特定のメッセージへの恒久的な共有可能リンクを生成します
🔍 検索と発見
  • チャンネルを一覧表示:メンバーになっているすべてのチャンネル(パブリック、プライベート、DM、グループ DM)を列挙します
  • 会話を検索:Slack の検索機能を使って、自分がメンションされたメッセージや関与しているメッセージを見つけます
📊 メタデータとコンテキスト
  • チャンネル情報を取得:チャンネルの詳細、トピック、目的、メンバー数、設定を確認します
  • ユーザー情報を取得:ユーザープロフィール、メールアドレス、役職、タイムゾーン、ステータス情報を検索します

クイックスタート

方法 1:PyPI からインストール(推奨)

この MCP サーバーを最も簡単に使うには、PyPI から直接インストールします。

# Install via pip
pip install slack-mcp-server-v2

# Or install via uvx (recommended for MCP servers)
uvx slack-mcp-server-v2
方法 2:ソースからインストール
# Clone the repository
git clone https://github.com/stevenvo/slack-mcp-server.git
cd slack-mcp-server

# Install dependencies
pip install -r requirements.txt

インストール後、認証を設定する必要があります(以下を参照)。

認証

方法 1:ユーザートークン(推奨)

ユーザートークンは個人の Slack 権限を使用し、メンバーになっているすべてのチャンネルにアクセスできます。

  1. https://api.slack.com/apps にアクセスします
  2. 新しいアプリを作成します(または既存のアプリを使用します)
  3. 「OAuth & Permissions」に移動します
  4. 次の User Token Scopes を追加します:
    • channels:history - パブリックチャンネルのメッセージを表示します
    • channels:read - チャンネルの基本情報を表示します
    • groups:history - プライベートチャンネルのメッセージを表示します
    • groups:read - プライベートチャンネルの基本情報を表示します
    • im:history - ダイレクトメッセージのメッセージを表示します
    • im:read - DM の基本情報を表示します
    • mpim:history - グループ DM のメッセージを表示します
    • mpim:read - グループ DM の基本情報を表示します
    • users:read - ユーザー情報を表示します
    • search:read - メッセージを検索します
  5. アプリをワークスペースにインストールします
  6. 「User OAuth Token」をコピーします(xoxp- で始まります)
方法 2:ボットトークン

ボットトークンは制限が多いものの、チーム全体で使う場合は設定がより簡単です。

  1. 上記の手順 1~2 に従います
  2. 代わりに Bot Token Scopes を追加します(同じ一覧ですが、ボットのセクションにあります)
  3. アプリをインストールします
  4. 「Bot User OAuth Token」をコピーします(xoxb- で始まります)
  5. 読み取りたいチャンネルにボットを招待します:/invite @YourBotName
環境を設定

.env ファイルを作成します:

cp .env.example .env

.env を編集して、トークンを追加します:

# Use one of these:
SLACK_USER_TOKEN=xoxp-your-user-token-here
# OR
SLACK_BOT_TOKEN=xoxb-your-bot-token-here

Claude Code の設定

~/.claude.json ファイルを編集して、このサーバーを Claude Code に追加します:

PyPI パッケージを使用(推奨)
{
  "mcpServers": {
    "slack": {
      "command": "uvx",
      "args": ["slack-mcp-server-v2"],
      "env": {
        "SLACK_USER_TOKEN": "xoxp-your-user-token-here",
        "SLACK_WORKSPACE_URL": "https://your-workspace.slack.com"
      }
    }
  }
}
ローカルインストールを使用

ソースからインストールした場合:

{
  "mcpServers": {
    "slack": {
      "command": "python",
      "args": ["/path/to/slack-mcp-server/server.py"],
      "env": {
        "SLACK_USER_TOKEN": "xoxp-your-user-token-here",
        "SLACK_WORKSPACE_URL": "https://your-workspace.slack.com"
      }
    }
  }
}
ボットトークンを使用

ユーザートークンの代わりにボットトークンを使用する場合:

{
  "mcpServers": {
    "slack": {
      "command": "uvx",
      "args": ["slack-mcp-server-v2"],
      "env": {
        "SLACK_BOT_TOKEN": "xoxb-your-bot-token-here",
        "SLACK_WORKSPACE_URL": "https://your-workspace.slack.com"
      }
    }
  }
}

注:ボットをチャンネルに招待してください:/invite @YourBotName

インストールを確認

Claude Code を再起動し、サーバーが実行されていることを確認します:

claude mcp list

有効な MCP サーバーの一覧に slack が表示されます。

利用可能なツール

このサーバーは、Slack とやり取りするための 7 つの MCP ツールを提供します:

📬 read_channel_messages

柔軟な期間指定で、任意の Slack チャンネルから最近のメッセージを取得します。

パラメーター:

名前型必須デフォルト説明
channel_idstring✅-Slack チャンネル ID(例:C1234567890)
lookback_hoursnumber❌24現在から遡る時間数
limitnumber❌100取得するメッセージの最大数(最大:1000)

自然言語での例:

  • 「過去 24 時間の #general チャンネルのメッセージを表示して」
  • 「チャンネル C1234567890 の過去 48 時間分のメッセージを読んで」
  • 「C070PDRHQS1 から最新の 50 件のメッセージを取得して」

戻り値: タイムスタンプ、ユーザーへのメンション、スレッド表示、リアクション、パーマリンクを含む、整形済みのメッセージです。


💬 read_thread_messages

親メッセージとすべての返信を含む、会話スレッド内のすべてのメッセージを読み取ります。

パラメーター:

名前型必須説明
channel_idstring✅スレッドが存在するチャンネル ID
thread_tsstring✅スレッドのタイムスタンプ(親メッセージの ts フィールド)

自然言語での例:

  • 「チャンネル C1234567890 のタイムスタンプ 1699564800.123456 のスレッド全体を読んで」
  • 「メッセージ ts 1699564800.123456 へのすべての返信を表示して」

戻り値: 親メッセージとすべての返信を含む完全なスレッドです。タイムスタンプとリアクション付きで整形されます。


📋 get_channel_info

Slack チャンネルの詳細なメタデータを取得します。

パラメーター:

名前型必須説明
channel_idstring✅Slack チャンネル ID

自然言語での例:

  • 「チャンネル C1234567890 の情報を取得して」
  • 「#engineering チャンネルの詳細を表示して」

戻り値: チャンネル名、ID、作成日、メンバー数、プライバシー設定、トピック、目的です。


👤 get_user_info

任意の Slack ユーザーの詳細なプロフィール情報を検索します。

パラメーター:

名前型必須説明
user_idstring✅Slack ユーザー ID(例:U1234567)

自然言語での例:

  • 「ユーザー U1234567 の情報を取得して」
  • 「@john.doe の詳細を表示して」

戻り値: ユーザーの本名、表示名、メールアドレス、役職、ステータス、タイムゾーン、管理者/ボットのフラグです。


📑 list_my_channels

チャンネルの種類を指定して、自分がメンバーになっているすべてのチャンネルを一覧表示します。

パラメーター:

名前型必須デフォルト説明
typesstring❌public_channel,private_channelカンマ区切りのチャンネルタイプ

対応しているタイプ:

  • public_channel - パブリックチャンネル
  • private_channel - プライベートチャンネル
  • mpim - グループダイレクトメッセージ
  • im - ダイレクトメッセージ

自然言語での例:

  • 「自分のチャンネルをすべて一覧表示して」
  • 「参加しているプライベートチャンネルをすべて表示して」
  • 「自分の DM をすべて一覧表示して」

戻り値: チャンネル名、ID、メンバー数、プライバシー表示です。


🔍 search_my_conversations

自分がメンションされている、または関与しているすべての会話からメッセージを検索します。

パラメーター:

名前型必須デフォルト説明
querystring✅-検索語
countnumber❌20結果の数(最大:100)

自然言語での例:

  • 「自分の会話から『deployment』を検索して」
  • 「過去 1 週間の『bug fix』に言及しているメッセージを探して」
  • 「『Q4 planning』に関するメッセージを検索して」

戻り値: チャンネル名、ユーザー情報、タイムスタンプ、パーマリンクを含む、一致したメッセージです。


🔗 get_message_permalink

特定の Slack メッセージへの、恒久的に共有できるリンクを生成します。

パラメーター:

名前型必須説明
channel_idstring✅チャンネル ID
message_tsstring✅メッセージのタイムスタンプ

自然言語の例:

  • 「チャンネル C1234567890 のメッセージ 1699564800.123456 のパーマリンクを取得して」
  • 「このメッセージへのリンクを生成して」

戻り値: ワークスペースの URL が変更されても機能する恒久的な URL。

使用例

Claude Code で設定すると、自然言語を使って Slack ワークスペースを操作できます。以下にクエリの例を示します。

メッセージを読む
👤 "Show me the latest messages from #engineering"
🤖 [Claude fetches and displays recent messages with timestamps, users, and links]

👤 "What were the last 100 messages in the #product-updates channel from the past week?"
🤖 [Claude retrieves messages from the last 168 hours with limit of 100]
スレッドを追う
👤 "Read the full thread that starts at timestamp 1699564800.123456 in channel C1234567890"
🤖 [Claude displays the entire conversation thread with all replies]
探索と検索
👤 "List all channels I'm a member of"
🤖 [Claude shows all your public and private channels with member counts]

👤 "Search my Slack conversations for 'quarterly review'"
🤖 [Claude searches across all your messages and shows matches with context]

👤 "Find mentions of 'production deployment' in my conversations"
🤖 [Claude uses Slack search to find relevant messages]
コンテキストを取得する
👤 "Get info about channel C1234567890"
🤖 [Claude shows channel name, topic, member count, etc.]

👤 "Who is user U1234567?"
🤖 [Claude displays user profile with email, title, timezone]

👤 "Get me a permanent link to message 1699564800.123456 in #general"
🤖 [Claude generates a shareable permalink]
実用的なワークフロー

プロジェクトの状況を把握する:

👤 "Show me all messages from #project-alpha in the last 3 days"

重要な決定を見つける:

👤 "Search for messages about 'API migration decision'"

オンボーディングのコンテキストを把握する:

👤 "List all channels I'm in and show me the purpose of each"

チャンネル ID の確認方法

方法 1:Slack URL から確認する

チャンネルを開くと、URL は次のようになります。

https://your-workspace.slack.com/archives/C1234567890/p1234567890

/archives/ の後ろの部分がチャンネル ID です:C1234567890

方法 2:MCP サーバーを使用する

Claude に次のように尋ねます。

List all my channels
方法 3:Slack で右クリックする
  1. チャンネル名を右クリックします
  2. 「リンクをコピー」をクリックします
  3. URL からチャンネル ID を取り出します

要件

  • Python:3.10 以降
  • Slack ワークスペース:Slack アプリを作成および設定するための管理者アクセス権
  • Claude Code:MCP に対応した最新バージョン
  • オペレーティングシステム:macOS、Linux、または WSL を使用した Windows

トラブルシューティング

「Missing required scopes」エラー

Slack アプリに適切な OAuth スコープを設定する必要があります。

解決方法:

  1. https://api.slack.com/apps にアクセスし、アプリを選択します
  2. 「OAuth & Permissions」に移動します
  3. Authentication セクションに記載されている必須スコープをすべて追加したことを確認します
  4. アプリをワークスペースに再インストールします
  5. 新しいトークンをコピーします
「Channel not found」エラー

Bot トークンの場合:

# Invite the bot to the channel first
/invite @YourBotName

User トークンの場合:

  • チャンネルのメンバーであることを確認します
  • チャンネル ID が正しいことを確認します(「チャンネル ID の確認方法」セクションを参照)
「Not authenticated」エラー

設定を確認する:

# Verify token is set correctly (check ~/.claude.json)
cat ~/.claude.json | grep -A 5 "slack"

# Ensure no extra whitespace
echo "$SLACK_USER_TOKEN" | wc -c

よくある問題:

  • トークンの有効期限が切れている、または取り消されている
  • トークン文字列に余分な空白や改行がある
  • トークンの種類が間違っている(user または bot)
  • JSON 内でトークンが適切に引用符で囲まれていない
MCP サーバーが起動しない

サーバーが読み込まれていることを確認する:

# List all MCP servers
claude mcp list

# Check if slack server is running
claude mcp list | grep slack

ログでエラーを確認する:

# View recent MCP server logs
tail -f ~/.claude/debug/*.log

# Filter for slack-related errors
tail -f ~/.claude/debug/*.log | grep -i slack

よくある解決方法:

  1. Claude Code を完全に再起動します
  2. ~/.claude.json の構文が有効な JSON であることを確認します
  3. Python のバージョンを確認します:python --version(3.10 以降が必要です)
  4. サーバーを手動でテストします:python server.py(ソースからインストールした場合)
SSL 証明書エラー

企業プロキシ(Zscaler など)経由で接続している場合:

# Set SSL certificate environment variable
export SSL_CERT_FILE=/path/to/your/ca-bundle.pem
export REQUESTS_CA_BUNDLE=/path/to/your/ca-bundle.pem

# Then reinstall
pip install slack-mcp-server-v2
レート制限

Slack API にはレート制限があります。制限に達した場合:

  • read_channel_messages の limit パラメーターを減らします
  • lookback_hours を増やして、取得するメッセージを減らします
  • 再試行する前に数分待ちます

レート制限の兆候:

Error: ratelimited

解決方法: サーバーはレート制限を自動的に処理しますが、待機が必要な場合があります。

セキュリティとプライバシー

トークンのセキュリティ
  • トークンをバージョン管理にコミットしないでください - .env ファイルはデフォルトで gitignore に登録されています
  • 漏えいしたトークンは直ちに取り消してください(https://api.slack.com/apps)
  • 本番環境では環境変数を使用し、トークンをハードコードしないでください
  • セキュリティのベストプラクティスとして、トークンを定期的にローテーションしてください
データアクセス

User トークン:

  • Slack で自分が閲覧できるすべての情報にアクセスできます
  • 個人の権限を使用します
  • 自分がメンバーになっているすべてのチャンネルを閲覧できます
  • 個人利用に便利です

Bot トークン:

  • bot が招待されているチャンネルに限定されます
  • 個人の ID とは切り離されています
  • チームや共有環境での利用に適しています
  • より細かな制御が可能です
企業環境

企業環境で使用する場合:

  • Slack アプリを作成する前に、IT/セキュリティチームに確認してください
  • データ保持ポリシーとコンプライアンスポリシーに注意してください
  • 監査証跡にはボットトークンの使用を検討してください
  • SSL 証明書の設定が必要になる場合があります(トラブルシューティングを参照)

制限事項

  • 読み取り専用:このサーバーはデータを読み取るだけで、メッセージの投稿やコンテンツの変更はできません
  • レート制限:Slack の API レート制限(Tier 3:約50リクエスト/分)が適用されます
  • トークンのスコープ:トークンに閲覧権限があるチャンネル/会話にのみアクセスできます
  • メッセージ履歴:Slack ワークスペースのメッセージ保持ポリシーによって制限されます

貢献

貢献を歓迎します!以下の方法でご協力いただけます。

問題の報告

バグを見つけた場合や、機能のリクエストがある場合:

  1. https://github.com/stevenvo/slack-mcp-server/issues に既存の問題がないか確認してください
  2. 以下を含めて新しい問題を作成してください:
    • 問題/機能の明確な説明
    • 再現手順(バグの場合)
    • 期待される動作と実際の動作
    • ご利用の環境(Python のバージョン、OS、Claude Code のバージョン)
プルリクエスト
  1. リポジトリをフォークします
  2. 機能ブランチを作成します:git checkout -b feature/amazing-feature
  3. 変更を加えます
  4. 十分にテストします
  5. 明確なメッセージを付けてコミットします:git commit -m "Add amazing feature"
  6. フォークしたリポジトリにプッシュします:git push origin feature/amazing-feature
  7. プルリクエストを作成します
開発環境のセットアップ
# Clone your fork
git clone https://github.com/YOUR_USERNAME/slack-mcp-server.git
cd slack-mcp-server

# Install in development mode
pip install -e .

# Make changes and test
python server.py

変更履歴

v0.1.0 (2025-01-06)
  • 初回リリース
  • Slack の会話を読み取るための7つのコアツール
  • ユーザートークンとボットトークンに対応
  • PyPI と MCP レジストリに公開
  • 包括的なドキュメント

ロードマップ

今後追加される可能性のある機能:

  • Slack Enterprise Grid への対応
  • ユーザーまたはリアクションによるメッセージのフィルタリング
  • 会話をさまざまな形式でエクスポート
  • Slack Connect チャンネルへの対応
  • API 呼び出しを減らすためのキャッシュ
  • リアルタイム更新のための Webhook 対応

ご提案は GitHub Issues までお寄せください!

関連プロジェクト

サポート

ライセンス

MIT License - 詳細は LICENSE ファイルをご覧ください。

Copyright (c) 2025 Steven Vo


MCP コミュニティのために ❤️ を込めて作成

役に立った場合は、GitHub でリポジトリに ⭐ を付けてください!

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。