Slack MCP Host について
Slack MCP Hostは、設定済みのMCPサーバーをLLMとの会話から利用するSlackボットです。専用チャンネルでツールを実行し、Markdownや折りたたみ表示で結果を提示します。
主な機能
- 01SlackでのLLM会話
- 02複数のMCPサーバー接続
- 03Markdown形式の応答
- 04ツール結果の折りたたみ表示
- 05会話履歴の保持
活用シーン
- 01Slackから接続済みデータベースを検索
- 02以前のツール結果について追加確認
- 03長いツール出力の確認
MCP 対応
設定済みのMCPサーバーに接続し、Slackの会話内でツールを実行して結果を提示します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Slack MCP ホスト
Slack と MCP(Machine Control Protocol)サーバーを連携させ、専用チャンネルで LLM を活用したやり取りを提供する Slack ボットです。設定済みの MCP サーバーのツールを実行し、結果をわかりやすい形式で表示できます。
特長
- 🤖 Slack での LLM を活用した会話
- 🔧 複数の MCP サーバーとの連携
- 📝 Markdown のレンダリングに対応
- 🔍 折りたたみ可能なツール実行結果
- 💾 会話履歴の保持
- 🔐 安全な設定管理
前提条件
- Python 3.11+
- 依存関係の管理に使用する uv
- 管理者アクセス権のある Slack ワークスペース
- OpenAI API へのアクセス
- 1 つ以上の MCP サーバー
セットアップ
- リポジトリをクローンする
git clone https://github.com/yourusername/slack-mcp-host.git
cd slack-mcp-host
- 仮想環境を作成して有効化する
uv venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
- 依存関係をインストールする
uv sync
- 環境を設定する
cp .env.example .env
.env を編集して認証情報を設定します:
SLACK_API_KEY=xoxb-your-slack-bot-token
OPENAI_API_KEY=your-openai-api-key
OPENAI_BASE_URL=https://api.openai.com/v1
OPENAI_MODEL=gpt-4
# MCP Servers
SLACK_MCP_NEO4J_MOVIES=uvx mcp-neo4j-cypher --url neo4j+s://demo.neo4jlabs.com --username movies --password movies
SLACK_MCP_TIME=uvx mcp-server-time
- Slack アプリを作成する
- api.slack.com/apps にアクセスします
- 「Create New App」→「From an app manifest」をクリックします
- ワークスペースを選択します
manifest.ymlの内容をコピーして貼り付けます- アプリを作成し、ワークスペースにインストールします
デプロイ
Cloudflare Workers
- Wrangler をインストールする
npm install -g wrangler
- Cloudflare にログインする
wrangler login
- シークレットを設定する
wrangler secret put SLACK_API_KEY
wrangler secret put OPENAI_API_KEY
- デプロイする
wrangler deploy
- Slack アプリの設定を更新する
- Slack アプリの設定に移動します
- イベントサブスクリプション URL を Cloudflare Workers の URL に更新します:
https://slack-mcp-host.<your-worker-subdomain>.workers.dev/slack/events
使用例
以下は、やり取りの流れの例です:
- ユーザーが会話を開始する
User: Can you help me find movies directed by Christopher Nolan?
- ボットがツールを実行して応答する
Bot: I'll help you find movies directed by Christopher Nolan using the Neo4j Movies database.
<details><summary>Tool Results</summary>
Tool neo4j_movies result:
- Inception (2010)
- The Dark Knight (2008)
- Interstellar (2014)
- Memento (2000)
- The Prestige (2006)
</details>
Would you like to know more details about any of these movies?
- ユーザーが追加で質問する
User: Tell me more about Inception
- ボットが別のクエリを実行する
Bot: I'll get the details about Inception for you.
<details><summary>Tool Results</summary>
Tool neo4j_movies result:
Title: Inception (2010)
Director: Christopher Nolan
Cast: Leonardo DiCaprio, Joseph Gordon-Levitt, Ellen Page
Plot: A thief who steals corporate secrets through dream-sharing technology is given the inverse task of planting an idea into the mind of a C.E.O.
</details>
The movie received critical acclaim for its innovative storytelling and visual effects. Would you like to know about any other movies or specific aspects of Inception?
開発
開発用にローカルで実行するには:
uvicorn src.api:app --reload --port 8000
ngrok などを使用して、ローカルサーバーを外部に公開します:
ngrok http 8000
Slack アプリのイベントサブスクリプション URL を ngrok の URL に更新します。
貢献
- リポジトリをフォークします
- 機能ブランチを作成します(
git checkout -b feature/amazing-feature) - 変更をコミットします(
git commit -m 'Add amazing feature') - ブランチにプッシュします(
git push origin feature/amazing-feature) - プルリクエストを作成します
ライセンス
このプロジェクトは MIT License の下でライセンスされています。詳細は LICENSE ファイルをご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。