mcpField
S
slack-mcp-server

slack-mcp-server

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

slack-mcp-server について

slack-mcp-server は、Slack API にアクセスするための MCP サーバーです。AI アシスタントが標準化されたインターフェースを通じてチャンネルの閲覧、メッセージ投稿、検索を行えます。Stdio と Streamable HTTP の両方のトランスポートに対応しています。

主な機能

  1. 01チャンネルとメッセージの読み取りツール
  2. 02メッセージ投稿とスレッド返信
  3. 03リアクション絵文字の追加
  4. 04ユーザープロフィールの一括取得
  5. 05複数条件によるメッセージ検索
  6. 06任意で有効にできるセーフ検索モード

活用シーン

  1. 01AI アシスタントによるチャンネルの最近のメッセージ要約
  2. 02アシスタント経由のスレッド返信やリアクション追加
  3. 03ユーザー・日付・チャンネルでの過去メッセージ検索

MCP 対応

本プロジェクトは MCP サーバーであり、slack_list_channels、slack_post_message、slack_search_messages などの Slack 操作を MCP クライアントにツールとして提供します。

設定

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

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

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

パッケージ
npm@ubie-oss/slack-mcp-server

ツール

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

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

詳細

slack-mcp-server

Slack API にアクセスするための MCP(Model Context Protocol) サーバーです。このサーバーを使用すると、AI アシスタントは標準化されたインターフェースを通じて Slack API を操作できます。

トランスポートのサポート

このサーバーは、従来の MCP トランスポート方式と最新の MCP トランスポート方式の両方をサポートしています。

  • Stdio トランスポート(デフォルト):ローカル統合向けのプロセスベースの通信
  • Streamable HTTP トランスポート:Web アプリケーションやリモートクライアント向けの HTTP ベースの通信

機能

利用可能なツール:

  • slack_list_channels - ページネーションを使用してワークスペース内の公開チャンネルを一覧表示
  • slack_post_message - Slack チャンネルに新しいメッセージを投稿
  • slack_reply_to_thread - Slack の特定のメッセージスレッドに返信
  • slack_add_reaction - メッセージにリアクション絵文字を追加
  • slack_get_channel_history - チャンネルの最近のメッセージを取得
  • slack_get_thread_replies - メッセージスレッド内のすべての返信を取得
  • slack_get_users - ワークスペース内のすべてのユーザーの基本プロフィール情報を取得
  • slack_get_user_profiles - 複数ユーザーのプロフィール情報を一括で取得(バッチ処理に便利)
  • slack_search_messages - 強力なフィルターを使ってワークスペース内のメッセージを検索:
    • 基本的なクエリ検索
    • 場所フィルター:in_channel
    • ユーザーフィルター:from_user、with
    • 日付フィルター:before(YYYY-MM-DD)、after(YYYY-MM-DD)、on(YYYY-MM-DD)、during(例:「July」、「2023」)
    • コンテンツフィルター:has(絵文字リアクション)、is(保存済み/スレッド)
    • 関連度スコアまたはタイムスタンプによる並べ替え

クイックスタート

インストール
npm install @ubie-oss/slack-mcp-server

注:現在は GitHub Registry でホストされているため、PAT が必要です。

設定

以下の環境変数を設定する必要があります。

  • SLACK_BOT_TOKEN:Slack Bot User OAuth Token
  • SLACK_USER_TOKEN:Slack User OAuth Token(メッセージ検索など、一部の機能で必要)
  • SLACK_SAFE_SEARCH(任意):true に設定すると、検索結果からプライベートチャンネル、DM、グループ DM を自動的に除外します。この設定はサーバー側で適用され、クライアントから変更することはできません。

これらの環境変数を設定する .env ファイルを作成することもできます。

SLACK_BOT_TOKEN=xoxb-your-bot-token
SLACK_USER_TOKEN=xoxp-your-user-token
SLACK_SAFE_SEARCH=true  # Optional: Enable safe search mode
使用方法
MCP サーバーを起動する

Stdio トランスポート(デフォルト):

npx @ubie-oss/slack-mcp-server

Streamable HTTP トランスポート:

npx @ubie-oss/slack-mcp-server -port 3000

インストール済みのモジュールは、node を使って実行することもできます。

# Stdio transport
node node_modules/.bin/slack-mcp-server

# HTTP transport  
node node_modules/.bin/slack-mcp-server -port 3000

コマンドラインオプション:

  • -port <number>:指定したポートで Streamable HTTP トランスポートを起動
  • -h, --help:ヘルプメッセージを表示
クライアントの設定

Stdio トランスポートの場合(Claude Desktop など):

{
  "slack": {
    "command": "npx",
    "args": [
      "-y",
      "@ubie-oss/slack-mcp-server"
    ],
    "env": {
      "NPM_CONFIG_//npm.pkg.github.com/:_authToken": "<your-github-pat>",
      "SLACK_BOT_TOKEN": "<your-bot-token>",
      "SLACK_USER_TOKEN": "<your-user-token>",
      "SLACK_SAFE_SEARCH": "true"
    }
  }
}

Streamable HTTP トランスポートの場合(Web アプリケーション):

サーバーを起動します。

SLACK_BOT_TOKEN=<your-bot-token> SLACK_USER_TOKEN=<your-user-token> npx @ubie-oss/slack-mcp-server -port 3000

接続先:http://localhost:3000/mcp

クライアントの詳細な使用例については、examples/README.md を参照してください。

実装パターン

このサーバーでは、以下の実装パターンを採用しています。

  1. Zod スキーマを使用してリクエスト/レスポンスを定義

    • リクエストスキーマ:入力パラメーターを定義
    • レスポンススキーマ:必要なフィールドに限定してレスポンスを定義
  2. 実装の流れ:

    • Zod スキーマでリクエストを検証
    • Slack WebAPI を呼び出す
    • Zod スキーマでレスポンスを解析し、必要なフィールドに限定
    • JSON として返す

たとえば、slack_list_channels の実装では、ListChannelsRequestSchema でリクエストを解析し、slackClient.conversations.list を呼び出して、ListChannelsResponseSchema で解析したレスポンスを返します。

開発

利用可能なスクリプト
  • npm run dev - ホットリロードを有効にして開発モードでサーバーを起動
  • npm run build - 本番環境向けにプロジェクトをビルド
  • npm run start - 本番サーバーを起動
  • npm run lint - リントチェックを実行(ESLint および Prettier)
  • npm run fix - リントの問題を自動修正
コントリビューション
  1. リポジトリをフォーク
  2. 機能ブランチを作成
  3. テストとリントを実行:npm run lint
  4. 変更をコミット
  5. ブランチにプッシュ
  6. プルリクエストを作成

コメント

MCP は初めてですか?

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

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