mcpField
S
Slack MCP Server

Slack MCP Server

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

Slack MCP Server について

Slack MCP Server は、LLM によるワークスペース内容の検索、閲覧、管理を可能にします。操作ツールに加え、ワークスペースのリソースと一般的なチーム業務向けのプロンプトを備えています。

主な機能

  1. 01チャンネルと詳細情報の閲覧
  2. 02メッセージとスレッドの確認
  3. 03ワークスペース内メッセージの検索
  4. 04ユーザーと共有ファイルの一覧表示
  5. 05メッセージへのリアクション追加と削除
  6. 06ワークスペースリソースとワークフロープロンプト

活用シーン

  1. 01特定の話題に関する議論の検索
  2. 02最近のチャンネル活動の確認
  3. 03デイリースタンドアップ情報の収集
  4. 04ワークスペースのメンバーやチャンネルの確認

MCP 対応

チャンネル、メッセージ、ユーザー、ファイル、リアクションを操作する Slack ツールと、ワークスペースのリソースおよびワークフロープロンプトを MCP クライアントに提供します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"slack-mcp-server-sergiokingone": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/inspector"
]
}
}
}
起動コマンドnpx -y @modelcontextprotocol/inspector

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

パッケージ
npm@modelcontextprotocol/inspector

ツール

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

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

詳細

Slack MCP サーバー

LLM が Slack ワークスペースとやり取りできるようにする、包括的な Model Context Protocol(MCP)サーバーです。このサーバーは、Slack コンテンツの検索、閲覧、管理を行うツールに加え、ワークスペース情報を提供するリソースと、一般的なワークフロー向けのプロンプトを提供します。

機能

🛠️ ツール(11 種類)
  • チャンネル管理
    • slack_list_channels - パブリックチャンネルとプライベートチャンネルを閲覧します
    • slack_get_channel_info - チャンネルの詳細情報を取得します
    • slack_list_bookmarks - チャンネル内のブックマークを一覧表示します
  • メッセージ操作
    • slack_list_messages - チャンネルやスレッドのメッセージを読み取ります
    • slack_list_threads - スレッド形式の会話を見つけます
    • slack_search_messages - ワークスペース全体を検索します
  • ユーザー管理
    • slack_get_user_info - ユーザーの詳細情報を取得します
    • slack_list_users - ワークスペースのユーザーを一覧表示します
  • コンテンツとリアクション
    • slack_list_files - 共有ファイルを閲覧します
    • slack_add_reaction - 絵文字リアクションを追加します
    • slack_remove_reaction - 絵文字リアクションを削除します
📚 リソース(4 種類)
  • slack://workspace - ワークスペース情報
  • slack://me - 現在のボットユーザー情報
  • slack://users - ユーザーディレクトリ全体
  • slack://channels - アクセス可能なすべてのチャンネル
💡 プロンプト(5 種類)
  • find_recent_discussions - 特定のトピックに関する議論を検索します
  • channel_activity_summary - チャンネルのアクティビティを要約します
  • team_member_activity - チームメンバーの参加状況を確認します
  • daily_standup_helper - デイリースタンドアップに必要な情報を収集します
  • knowledge_search - 組織内のナレッジを検索します

クイックスタート

1. Slack アプリを作成する
  1. api.slack.com/apps にアクセスし、「Create New App」をクリックします
  2. 「From scratch」を選択し、アプリに名前を付けます
  3. インストール先のワークスペースを選択します
2. OAuth スコープを設定する

アプリの設定で「OAuth & Permissions」に移動し、以下の Bot Token Scopes を追加します。

必須スコープ:

  • channels:read - チャンネルの基本情報を表示します
  • channels:history - パブリックチャンネルのメッセージを表示します
  • groups:read - プライベートチャンネルの基本情報を表示します
  • groups:history - プライベートチャンネルのメッセージを表示します
  • users:read - ワークスペース内のメンバーを表示します
  • users:read.email - メールアドレスを表示します
  • team:read - ワークスペース情報を表示します

すべての機能を利用するための追加スコープ:

  • im:read - ダイレクトメッセージを表示します
  • im:history - ダイレクトメッセージ内のメッセージを表示します
  • mpim:read - グループダイレクトメッセージを表示します
  • mpim:history - グループダイレクトメッセージ内のメッセージを表示します
  • search:read - メッセージを検索します
  • files:read - ファイルを表示します
  • reactions:read - 絵文字リアクションを表示します
  • reactions:write - リアクションを追加、削除します
  • bookmarks:read - ブックマークを表示します
3. アプリをインストールする
  1. 「OAuth & Permissions」で「Install to Workspace」をクリックします
  2. 「Bot User OAuth Token」をコピーします(xoxb- で始まります)
4. Claude Desktop を設定する

Claude Desktop の設定ファイルに追加します。

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "slack": {
      "command": "npx",
      "args": ["-y", "@sergdev1/slack-mcp-server"],
      "env": {
        "SLACK_BOT_TOKEN": "xoxb-your-bot-token",
        "SLACK_TEAM_ID": "T01234567"
      }
    }
  }
}

使用例

ツールの使用
"Search for messages about the deployment"
"List all channels I have access to"
"Show me threads in #engineering from the last week"
"Get information about user U1234567890"
"Add a thumbsup reaction to message 1234567890.123456 in channel C1234567890"
リソースの使用

リソースを使うと、よく必要になる情報にすばやくアクセスできます。

"Check the workspace resource for company info"
"Look at the users resource to see all team members"
"Review the channels resource for a complete channel list"
プロンプトの使用

プロンプトを使うと、一般的なタスクをガイド付きのワークフローで実行できます。

"Use the find_recent_discussions prompt to search for budget talks"
"Run the channel_activity_summary for #general and #random"
"Execute daily_standup_helper for the #engineering channel"
"Use knowledge_search to find our deployment process"

API リファレンス詳細

ツール
slack_list_channels

Slack ワークスペース内のチャンネルを一覧表示します。

パラメーター:

  • exclude_archived(boolean、任意):アーカイブ済みのチャンネルを除外します(デフォルト:true)
  • types(string、任意):チャンネルの種類(デフォルト:"public_channel,private_channel")
  • limit(number、任意):返すチャンネルの最大数(デフォルト:100)
  • cursor(string、任意):ページネーション用カーソル
slack_search_messages

ワークスペース全体のメッセージを検索します。

パラメーター:

  • query(string、必須):Slack の検索修飾子を含む検索クエリ
  • count(number、任意):1 ページあたりの結果数(デフォルト:20)
  • page(number、任意):ページ番号(デフォルト:1)
  • highlight(boolean、任意):一致箇所を強調表示します(デフォルト:true)
  • sort(string、任意):'score' または 'timestamp' で並べ替えます(デフォルト:'score')
  • sort_dir(string、任意):並べ替え順 'asc' または 'desc'(デフォルト:'desc')

検索修飾子:

  • from:@username - 特定のユーザーからのメッセージ
  • in:#channel - 特定のチャンネル内のメッセージ
  • after:2024-01-01 - 指定日以降のメッセージ
  • before:2024-12-31 - 指定日以前のメッセージ
  • has:link - リンクを含むメッセージ
  • has:file - ファイルを含むメッセージ
slack_add_reaction / slack_remove_reaction

メッセージの絵文字リアクションを管理します。

パラメーター:

  • channel(string、必須):チャンネル ID
  • timestamp(string、必須):メッセージのタイムスタンプ
  • name(string、必須):コロンを除いた絵文字名(例:'thumbsup')
リソース

リソースには URI からアクセスし、JSON データを返します。

  • slack://workspace:ワークスペース ID、名前、ドメイン、Enterprise 情報を返します
  • slack://me:ボットのユーザー ID、名前、認証情報を返します
  • slack://users:プロフィール付きのすべてのアクティブユーザーを返します
  • slack://channels:メタデータ付きの、アクセス可能なすべてのチャンネルを返します
プロンプト

各プロンプトは引数を受け取り、LLM 向けの構造化メッセージを返します。

find_recent_discussions
  • topic(string、必須):検索するトピック
  • days(string、任意):遡る日数(デフォルト:"7")
channel_activity_summary
  • channel_names(string、必須):カンマ区切りのチャンネル名
  • hours(string、任意):分析する時間数(デフォルト:"24")

高度な設定

環境変数
  • SLACK_BOT_TOKEN(必須):Slack ボットトークン
  • SLACK_TEAM_ID(任意):チーム情報を取得するためのワークスペース ID
セキュリティのベストプラクティス
  1. トークンのセキュリティ

    • トークンをバージョン管理にコミットしないでください
    • 機密データには環境変数を使用してください
    • トークンを定期的にローテーションしてください
  2. チャンネルへのアクセス

    • ボットをプライベートチャンネルに招待する必要があります:/invite @your-bot-name
    • DM にはユーザーからの明示的な許可が必要です
  3. レート制限

    • Slack のレート制限を遵守してください
    • リトライには指数バックオフを実装してください
    • 頻繁にアクセスするデータをキャッシュしてください

開発

プロジェクト構成
slack-mcp-server/
├── src/
│   ├── index.ts       # Main server entry point
│   ├── slack-client.ts # Slack API client wrapper
│   ├── tools.ts       # Tool implementations
│   ├── resources.ts   # Resource handlers
│   ├── prompts.ts     # Prompt definitions
│   └── types.ts       # TypeScript interfaces
├── package.json
├── tsconfig.json
└── README.md
ソースからのビルド
# Clone the repository
git clone https://github.com/sergdev1/slack-mcp-server.git
cd slack-mcp-server

# Install dependencies
npm install

# Build the project
npm run build

# Run in development mode
npm run dev
テスト
# Set your Slack token
export SLACK_BOT_TOKEN="xoxb-your-bot-token"
export SLACK_TEAM_ID="T01234567"  # Optional

# Run the server
npm test

# Use MCP Inspector for testing
npx @modelcontextprotocol/inspector
サーバーの拡張

新しいツールを追加するには:

  1. tools.ts でスキーマを定義します
  2. ハンドラー関数を実装します
  3. server.tool() に登録します

新しいリソースを追加するには:

  1. resources.ts でハンドラーを定義します
  2. server.resource() に登録します

新しいプロンプトを追加するには:

  1. prompts.ts でテンプレートを定義します
  2. server.prompt() に登録します

トラブルシューティング

よくある問題
"channel_not_found" エラー
  • ボットがチャンネルのメンバーであることを確認してください
  • チャンネル名ではなくチャンネル ID を使用していることを確認してください
  • チャンネルがアーカイブされていないことを確認してください
"missing_scope" エラー
  • アプリに必要な OAuth スコープを追加してください
  • アプリをワークスペースに再インストールしてください
  • 一部のスコープには管理者の承認が必要です
メッセージが返されない
  • ボットがチャンネルの種類に応じた履歴スコープを持っていることを確認してください
  • 時間範囲のパラメーターを確認してください
  • 指定した範囲内にチャンネルのメッセージがあることを確認してください
検索が機能しない
  • search:read スコープが必要です
  • 検索インデックスの反映には遅延が生じる場合があります
  • クエリの構文が有効であることを確認してください
デバッグモード

次の設定を行うと、デバッグログを有効にできます。

DEBUG=slack-mcp-server npm run dev

コントリビューション

コントリビューションを歓迎します。以下の手順に従ってください。

  1. リポジトリをフォークします
  2. フィーチャーブランチを作成します(git checkout -b feature/amazing-feature)
  3. 変更をコミットします(git commit -m 'Add amazing feature')
  4. ブランチにプッシュします(git push origin feature/amazing-feature)
  5. プルリクエストを作成します
コードスタイル
  • 型安全性のために TypeScript を使用してください
  • 既存のコードパターンに従ってください
  • 公開 API には JSDoc コメントを追加してください
  • 新機能にはテストを含めてください

ライセンス

MIT License - 詳細については LICENSE file を参照してください

謝辞

変更履歴

v2.0.0
  • 8 個の新しいツールを追加(検索、ユーザー、ファイル、リアクション)
  • データにすばやくアクセスするための 4 個のリソースを追加
  • よく使われるワークフロー向けに 5 個のプロンプトを追加
  • エラー処理と検証を改善
  • TypeScript の型を改善
  • モジュール化されたコードアーキテクチャ
v1.0.0
  • 初回リリース
  • 基本的なチャンネル、メッセージ、スレッド用ツール

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

コメント

MCP は初めてですか?

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

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