Apidog

オールインワン協働API開発プラットフォーム

API設計

APIドキュメント

APIデバッグ

APIモック

API自動テスト

Slack MCPサーバーを簡単に使用する方法

中村 拓也

中村 拓也

Updated on 4月 4, 2025

Slackモデルコンテキストプロトコル(MCP)サーバーは、ClaudeのようなAIアシスタントをSlackワークスペースにシームレスに統合する方法を提供し、チームの日常的なコミュニケーションにおいて彼らをアクティブな参加者に変えます。堅牢なTypeScript実装で構築されたこのサーバーは、AIがメッセージを投稿し、ユーザー情報を取得し、さまざまなワークスペース要素とリアルタイムで対話することを可能にします。人工知能とチームコラボレーションのギャップを埋めることで、Slack MCPサーバーは生産性を高め、ワークフローを効率化し、よりスマートで効率的な職場の対話を可能にします—すべて親しみやすいSlack環境内で。

💡
Slack MCPサーバーのセットアップに入る前に、Apidogをチェックしてください。これはAPIの設計、テスト、およびドキュメント化のための強力なツールです。Apidogは、APIをシームレスに統合し、構造化されたモデルと簡単な共同作業でワークフローを強化します。自動化とAPI管理を強化したい場合、ApidogはSlack MCPサーバーと共に使用する素晴らしいツールです。
button

モデルコンテキストプロトコルの理解

Slack MCPサーバーの詳細に入る前に、モデルコンテキストプロトコルが何を表すのかを理解することが重要です。MCPはAIモデルが外部システムおよびサービスと対話するための標準化されたインターフェースです。これは、AIアシスタントがツールにアクセスし、情報を取得し、トレーニングデータを超えてアクションを取るための構造化された方法を提供します。Slack統合の文脈において、MCPサーバーはAIアシスタントのリクエストとSlack APIの要件の間の解釈者として機能し、認証、フォーマット、およびレスポンス処理を処理します。

包括的な機能セット

Slack MCPサーバーの実装は、ネイティブSlackインターフェースの最も重要な機能を反映した広範な機能を提供します:

チャンネル管理とナビゲーション

  • チャンネルリスト:サーバーは、メンバー数、トピック、作成日などの詳細を含む公開チャンネルの包括的なリストを取得できます。これにより、AIアシスタントはワークスペース構造を理解し、特定の議論に適したチャンネルを推奨できます。
  • チャンネル履歴アクセス:AIアシスタントはチャンネルから最近のメッセージ履歴を取得でき、進行中の会話の文脈を提供し、より関連性のある応答を可能にします。

堅牢なメッセージング機能

  • メッセージ投稿:サーバーはAIアシスタントがSlackボットが追加された任意のチャンネルにフォーマットされたメッセージを作成して送信することを可能にし、リッチテキスト表示のためのSlackのマークダウン形式オプションをサポートします。
  • スレッド返信:シンプルな投稿を超えて、サーバーは特定のメッセージスレッドに返信することをサポートし、AIアシスタントが会話の文脈を維持し、集中した議論に参加できるようにします。
  • スケジュールされたメッセージ:時間に敏感なコミュニケーションのために、サーバーは特定の時刻にメッセージを配信するようにスケジュールでき、プロアクティブなリマインダーやアナウンスをサポートします。

向上したユーザーエンゲージメント

  • 絵文字リアクション:サーバーはAIアシスタントがメッセージに絵文字リアクションを追加することを許可し、会話スレッドを無駄にすることなくコンテンツに対して認識または応答する軽量な方法を提供します。
  • ユーザープロフィール取得:AIアシスタントは、表示名、メールアドレス(許可されている場合)、タイムゾーン、カスタムプロフィールフィールドなどの詳細なユーザープロフィール情報にアクセスでき、パーソナライズされたインタラクションを可能にします。
  • ワークスペースの人口統計:包括的なユーザーリストを取得する能力により、AIアシスタントはチームの構成を理解し、適切にコミュニケーションを調整できます。

技術的実装

Slack MCPサーバーは、信頼性とパフォーマンスのために設計されたモダンなスタック上に構築されています:

  • TypeScript基盤:コードベース全体はTypeScriptを活用し、型安全性と開発者体験を向上させ、ランタイムエラーを減少させ、コードの保守性を向上させます。
  • 非同期アーキテクチャ:サーバーは非同期通信パターンを実装して同時リクエストを効率的に処理し、高ボリュームのインタラクション中にボトルネックを防ぎます。
  • レート制限管理:組み込みメカニズムはSlack APIのレート制限を尊重し、集中的な使用期間中でも信頼できる動作を確保するためのインテリジェントな再試行戦略を実装します。
  • 安全なトークン管理:実装は認証トークンの管理に関してセキュリティのベストプラクティスに従い、機密情報が露出しないようにします。
  • 包括的なエラーハンドリング:詳細なエラーマネジメントは問題が発生した際に実行可能なフィードバックを提供し、トラブルシューティングとメンテナンスを簡素化します。

詳細なインストールガイド

Slack MCPサーバーのセットアップには、Slackアプリの構成とサーバーのデプロイの両方に細心の注意が必要です。この包括的なガイドでは、プロセスの各ステップを説明します:

Slackアプリの作成と構成

新しいSlackアプリを作成する

  • アプリケーションに意味のある名前を付け、ターゲットワークスペースを選択します。
  • 将来の参照のためにアプリケーションIDをメモしておいてください。

OAuthスコープを構成する
サーバーが正常に機能するためには特定の権限が必要です:

  • アプリのサイドバーで「OAuthと権限」に移動します。
  • 「ボットトークンスコープ」セクションで、以下のスコープを追加します:
  • channels:history - 公開チャンネル内のメッセージとコンテンツの表示を許可します。
  • channels:read - チャンネルに関する基本情報へのアクセスを可能にします。
  • chat:write - アプリケーションとしてメッセージを送信する権限を付与します。
  • reactions:write - メッセージに絵文字反応を追加することを許可します。
  • users:read - ワークスペースユーザーに関する基本情報の表示を許可します。
  • users:read.email - (オプション)ユーザーのメールアドレスへのアクセスを可能にします。

ワークスペースにインストールする

  • OAuthセクションの「ワークスペースにインストール」ボタンをクリックします。
  • 要求された権限を確認し、承認します。
  • 承認後、xoxb-で始まる「ボットユーザーOAuthトークン」を受け取ります。
  • このトークンはサーバーの構成に必要になるため、安全に保存してください。

チームIDを取得する

  • 特定のAPI呼び出しにはチームIDが必要です。
  • このIDは通常「T」で始まり、その後に英数字が続きます。
  • SlackワークスペースにログインしているときのURLやAPIを通じてこのIDを見つけることができます。

デプロイオプション

Slack MCPサーバーは、さまざまなインフラストラクチャの好みに対応する複数のデプロイ方法を提供します:

NPXデプロイ(クイックセットアップ向けの推奨)

この方法は、NPMのパッケージ実行機能を活用した効率的なセットアップを提供します:

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

Dockerコンテナデプロイ

コンテナ化が好まれる環境の場合:

{
  "mcpServers": {
    "slack": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "SLACK_BOT_TOKEN",
        "-e",
        "SLACK_TEAM_ID",
        "mcp/slack"
      ],
      "env": {
        "SLACK_BOT_TOKEN": "xoxb-your-bot-token",
        "SLACK_TEAM_ID": "T01234567"
      }
    }
  }
}

ローカルでDockerイメージをビルドするには:

docker build -t mcp/slack -f src/slack/Dockerfile .

ソースデプロイ

ソースコードに直接制御を好む方のために:

リポジトリをクローンします:

git clone https://github.com/modelcontextprotocol/server-slack.git

依存関係をインストールします:

npm install

TypeScriptプロジェクトをビルドします:

npm run build

サーバーを起動します:

SLACK_BOT_TOKEN=xoxb-your-token SLACK_TEAM_ID=T01234567 node dist/index.js

AIアシスタントプラットフォームとの統合

Claudeデスクトップ構成

Slack MCPサーバーをClaudeデスクトップと接続するには:

  1. Claudeデスクトップの構成ファイルを見つけます。
  2. MCPサーバー構成を追加し、パスとトークンを必要に応じて調整します:
{
  "mcpServers": {
    "slack": {
      "command": "node",
      "args": ["/path/to/project/dist/index.js"],
      "env": {
        "SLACK_BOT_TOKEN": "xoxb-your-bot-token",
        "SLACK_TEAM_ID": "T01234567"
      }
    }
  }
}

Cursor統合

Cursorは、MCPサーバーをサポートする現代的なAI駆動のコードエディタです。Slack MCPサーバーをグローバルにまたはプロジェクトごとに統合できます:

グローバル統合:

  1. Cursor設定 > MCPに移動します。
  2. 「新しいグローバルMCPサーバーを追加」をクリックします。
  3. サーバー構成を~/.cursor/mcp.jsonに追加します。

プロジェクト特有の統合:

適切な構成でプロジェクトディレクトリ内に.cursor/mcp.jsonを作成または編集します。

詳細なツールリファレンス

Slack MCPサーバーは、Slackとの対話のために8つの主要なツールを公開しています:

slack_list_channels

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

  • オプションのパラメーター
  • limit(デフォルト:100、最大:200):返すチャンネルの最大数
  • cursor:追加ページを取得するためのページネーションクリーナー
  • 返すもの:ID、名前、メンバー数、メタデータを含むチャンネルオブジェクトの配列

slack_post_message

指定されたチャンネルに新しいメッセージを投稿します。

  • 必須のパラメーター
  • channel_id:対象チャンネルのID
  • text:投稿するメッセージの内容
  • 返すもの:メッセージのタイムスタンプとチャンネル情報を持つ確認オブジェクト

slack_reply_to_thread

既存のメッセージスレッドに返信を投稿します。

  • 必須のパラメーター
  • channel_id:スレッドを含むチャンネル
  • thread_ts:親メッセージのタイムスタンプ
  • text:返信内容
  • 返すもの:返信のタイムスタンプとスレッド情報を持つ確認オブジェクト

slack_add_reaction

メッセージに絵文字リアクションを追加します。

  • 必須のパラメーター
  • channel_id:対象メッセージを含むチャンネル
  • timestamp:反応するメッセージのタイムスタンプ
  • reaction:コロンなしの絵文字名(例:👍の場合は「+1」)
  • 返すもの:成功した反応追加の確認

slack_get_channel_history

チャンネルから最近のメッセージを取得します。

  • 必須のパラメーター
  • channel_id:対象チャンネルのID
  • オプションのパラメーター
  • limit(デフォルト:10):取得するメッセージの数
  • 返すもの:内容、タイムスタンプ、およびメタデータを持つメッセージオブジェクトの配列

slack_get_thread_replies

特定のメッセージスレッド内のすべての返信を取得します。

  • 必須のパラメーター
  • channel_id:スレッドを含むチャンネル
  • thread_ts:親メッセージのタイムスタンプ
  • 返すもの:内容とメタデータを持つ返信メッセージの配列

slack_get_users

基本的なプロフィール情報を持つすべてのワークスペースユーザーを一覧表示します。

  • オプションのパラメーター
  • cursor:次のページのためのページネーションクリーナー
  • limit(デフォルト:100、最大:200):返すユーザーの最大数
  • 返すもの:ID、名前、および基本的なプロフィールデータを持つユーザーオブジェクトの配列

slack_get_user_profile

特定のユーザーの詳細なプロフィール情報を取得します。

  • 必須のパラメーター
  • user_id:対象ユーザーのID
  • 返すもの:利用可能なすべてのフィールドを持つ包括的なユーザープロフィールオブジェクト

Slack MCPサーバーを実装する際に、いくつかの一般的な問題が発生する可能性があります:

認証の問題

  • 症状:「未認証」のエラーがサーバーログに表示される
  • 解決策:ボットトークンが正しくコピーされていること、および期限が切れていないことを確認します。
  • 予防策:セキュリティのベストプラクティスに従ってトークンを定期的にローテーションします。

権限の制限

  • 症状:特定の操作を試みると「権限が拒否されました」と表示される
  • 解決策:Slackアプリで設定されているOAuthスコープを確認し、欠けている権限を追加します。
  • 予防策:デプロイメントガイドで必要な権限を文書化します。

チャンネルアクセスの問題

  • 症状:特定のチャンネルに投稿できない
  • 解決策:Slackボットがアクセスする必要があるチャンネルに招待されていることを確認します。
  • 予防策:必須のチャンネルにボットを自動で招待するオンボーディングスクリプトを作成します。

レート制限

  • 症状:レート制限通知とともにリクエストが失敗する
  • 解決策:再試行のために指数バックオフを実装し、可能な場合はリクエストをバッチ処理することを検討します。
  • 予防策:API使用パターンを監視し、高ボリュームの操作を最適化します。

AIアシスタントとSlackワークスペースの橋渡しを行うことで、チームは自動化、情報取得、共同作業の新しい可能性を開くことができます。Slack MCPサーバーは、現代の職場における真の統合AI支援に向けた重要なステップを示し、チームコミュニケーションにおける意味のあるAI参加に必要な技術的基盤と実用的なツールを提供します。