Allows searching for messages within a Slack workspace, providing tools to filter search results by channel and retrieve message details including text, timestamps, and user information.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Slack MCP Serversearch for recent messages about the project roadmap"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Slack MCP Server
Slack ワークスペース内のメッセージを検索する MCP (Model Context Protocol) サーバーです。AI エージェントが Slack のメッセージを効率的に検索・取得できるようにします。
概要
このプロジェクトは、MCP プロトコルに準拠したサーバーを実装し、Slack Web API を使用してワークスペース内のメッセージを検索する機能を提供します。Claude Desktop やその他の MCP クライアントから使用できます。
主な機能
✅ MCP プロトコル準拠: 標準的な MCP サーバー実装
✅ Slack メッセージ検索: ワークスペース内のメッセージを検索
✅ チャンネルフィルタリング: 特定のチャンネルに絞り込んだ検索
✅ レート制限対応: Slack API のレート制限を適切に処理
✅ エラーハンドリング: 統一されたエラーハンドリング戦略
✅ ログ記録: 検索リクエストの統計情報とログ記録
前提条件
Bun v1.2.21 以降
有効な Slack User Token (
xoxb-またはxoxp-で始まる)
Slack User Token の必要な権限
以下の権限を持つ Slack User Token が必要です:
channels:history: ユーザーの公開チャンネル内のメッセージとコンテンツを表示channels:read: ワークスペース内の公開チャンネルの基本情報を表示groups:history: ユーザーのプライベートチャンネル内のメッセージとコンテンツを表示groups:read: ユーザーのプライベートチャンネルの基本情報を表示im:history: ユーザーのダイレクトメッセージ内のメッセージとコンテンツを表示im:read: ユーザーのダイレクトメッセージの基本情報を表示mpim:history: ユーザーのグループダイレクトメッセージ内のメッセージとコンテンツを表示mpim:read: ユーザーのグループダイレクトメッセージの基本情報を表示search:read: ワークスペースのコンテンツを検索
セットアップ
1. リポジトリのクローン
git clone https://github.com/paterapatera/slack-mcp.git
cd slack-mcp2. 依存関係のインストール
bun install3. 環境変数の設定
必須の環境変数:
export SLACK_USER_TOKEN="xoxb-your-token-here"オプションの環境変数:
export SLACK_TEAM_ID="T1234567890" # チーム/ワークスペース ID
export SLACK_CHANNEL_IDS="C1234567890,C0987654321" # 検索対象チャンネル(カンマ区切り)4. ビルド
bun run buildビルド後、dist/index.js が生成されます。
使用方法
bun link でインストール
ローカル開発環境で使用する場合、bun link を使用します:
# プロジェクトディレクトリで実行
bun link
# グローバルにリンクされた後、どこからでも実行可能
slack-mcp環境変数を指定する場合:
SLACK_USER_TOKEN="xoxb-your-token" slack-mcpMCP クライアントとして使用
このサーバーは MCP クライアント(例: Claude Desktop, MCP Inspector)から使用されます。
Claude Desktop での設定
claude_desktop_config.json に以下を追加:
bun link を使用する場合(推奨):
{
"mcpServers": {
"slack-mcp": {
"command": "slack-mcp",
"env": {
"SLACK_USER_TOKEN": "xoxb-your-token-here",
"SLACK_TEAM_ID": "T1234567890",
"SLACK_CHANNEL_IDS": "C1234567890,C0987654321"
}
}
}
}bun link でグローバルにリンクされている場合、slack-mcp コマンドが使用可能になります。
ローカルパスを使用する場合:
{
"mcpServers": {
"slack-mcp": {
"command": "bun",
"args": ["/path/to/slack-mcp/dist/index.js"],
"env": {
"SLACK_USER_TOKEN": "xoxb-your-token-here",
"SLACK_TEAM_ID": "T1234567890",
"SLACK_CHANNEL_IDS": "C1234567890,C0987654321"
}
}
}
}直接実行
bun dist/index.jsただし、通常は MCP クライアント経由で使用します。
テスト
ユニットテスト
bun test全80テストが実行され、以下のカバレッジが含まれます:
Config Service
Slack API Client
Search Service
MCP Server
Logging Service
統合テスト
MCP Inspector を使用した E2E テスト
MCP Inspector を使用してサーバーをテストする方法については、MCP_INSPECTOR_GUIDE.md を参照してください。
簡単な手順:
# 1. 環境変数を設定
export SLACK_USER_TOKEN="xoxb-your-token-here"
# 2. ビルド
bun run build
# 3. MCP Inspector を起動
bun run inspectorまたは、テストスクリプトを使用:
./scripts/test-with-inspector.sh詳細は MCP_INSPECTOR_GUIDE.md を参照してください。
アーキテクチャ
主要コンポーネント
McpServer: MCP プロトコルの実装とツールの登録
SlackAPIClient: Slack Web API との通信とレート制限処理
SearchService: メッセージ検索のビジネスロジック
ConfigService: 環境変数の読み込みと検証
LoggingService: ログ記録と統計情報の管理
プロジェクト構造
slack-mcp/
├── src/
│ ├── index.ts # エントリーポイント
│ └── services/
│ ├── mcp-server.ts # MCP サーバー実装
│ ├── slack-api-client.ts # Slack API クライアント
│ ├── search-service.ts # 検索サービス
│ ├── config-service.ts # 設定管理
│ ├── logging-service.ts # ログ記録
│ └── __tests__/ # テストファイル
├── dist/ # ビルド出力
├── scripts/ # ユーティリティスクリプト
└── .kiro/ # 仕様書と設計ドキュメントツール
search_messages
Slack ワークスペース内のメッセージを検索します。
パラメータ:
query(string, 必須): 検索クエリlimit(number, オプション): 検索結果の最大件数
戻り値:
{
"messages": [
{
"text": "メッセージのテキスト",
"timestamp": "2024-01-01T00:00:00.000Z",
"channelId": "C1234567890",
"channelName": "general",
"userId": "U1234567890",
"userName": "username"
}
],
"total": 1,
"hasMore": false
}環境変数
変数名 | 必須 | 説明 |
| ✅ | Slack User Token ( |
| ❌ | チーム/ワークスペース ID |
| ❌ | 検索対象チャンネル ID(カンマ区切り) |
トラブルシューティング
サーバーが起動しない
環境変数
SLACK_USER_TOKENが正しく設定されているか確認トークンが有効な形式(
xoxb-またはxoxp-で始まる)か確認dist/index.jsが存在するか確認(bun run buildを実行)
検索が失敗する
Slack API の認証トークンが有効か確認
トークンに必要なスコープ(
search:read)が付与されているか確認ネットワーク接続を確認
MCP Inspector でエラーが発生する
ログが stdout に出力されていないか確認(すべて stderr に出力される必要があります)
詳細は MCP_INSPECTOR_GUIDE.md のトラブルシューティングセクションを参照
開発
開発環境のセットアップ
# 依存関係のインストール
bun install
# 開発モードでテストを実行
bun test --watch
# ビルド
bun run buildコードスタイル
TypeScript を使用
TDD (Test-Driven Development) アプローチ
統一エラーハンドリング戦略に準拠
ライセンス
ISC
参考リンク
貢献
このプロジェクトは個人プロジェクトです。問題や改善提案がある場合は、Issue を作成してください。
注意: このプロジェクトは bun link を使用したローカル開発環境での利用を想定しています。npm への公開は想定していません。