はじめに
絶賛話題沸騰中の、MCPサーバー。Slackと連携させるといい感じに最新の投稿を分析してくれたり、内容を解析してくれたりするので、使ってみようと思った。
同時に過去のslackの情報を遡って検索できたらいいなあと思い、やってみることにした。
この記事は設定周りについてまとめる。
必要な準備
Slack MCPサーバーで連携して、応答できるようになるまでにはやることが多く存在します。
ざっくりいうと....
- Slack ワークスペース
- メッセージ取得・送信可能なチャンネル・ユーザー
- Slack App
- Bot Token取得。必要スコープ設定
- MCPサーバー
- Node.js/python環境
- MCPホスト
- Vscode、Claude Desktop
- セキュリティ(ちゃんと会社で使うのなら検討する必要がある)
- Token管理・暗号化・アクセス制御
1つずつ確認して進める。
Slackワークスペースの用意
こちらのページからサインアップする必要がある。
何かしらのアカウントでログインをして、ワークスペース名を選択する。
Slack Appの作成
Slack MCPサーバーはこのSlack Appから呼び出す。
こちらで作成する。
引き続き、Appをインストールするワークスペースを選択する。
次にこちらの設定をする。
あとで変更可能なのでどちらのオプションでも大丈夫ですが、From scratch
を選択。
そして、Slackのアプリケーション名とワークスペースを選択し、Create App
を選択。
左サイドバーのOAuth & Permissions
タブ画面で、下の画面の方にあるBot Token Scopesを選択し、以下の Scope を追加する。
-
channels:history
- 指定したチャンネルのメッセージ履歴を最新のものから取得する
-
channels:read
- チャンネルの基本情報を閲覧する
-
chat:write
- アプリとしてメッセージを送信する
-
reactions:write
- メッセージに絵文字リアクションを追加
-
users:read
- ユーザーとその基本情報を閲覧する
-
users.profile:read
- これは不要だったかも
こちらはSlackのMCPサーバーに必要な権限です。
※ あとで追記します。
SlackワークスペースへSlack Appをインストールする
作成したSlack Appを利用できるようにワークスペースへインストールします。
左サイドバーInstall App
を選択。
Install to ${ワークスペース名}
になっていると思うので、そのボタンを押します。
上記のような権限の画面ができてきたら、許可するを選択してください。
そうすると、「Bot User OAuth Token」が生成されます。このトークンを用いて認証を実施します。
なので、このトークンの情報はコピーしてください!
Slack MCP Serverで必要な環境設定値
以下、2つの環境変数が必要になります。
SLACK_BOT_TOKEN
SLACK_TEAM_ID
SLACK_BOT_TOKENは先ほどコピーしたものを使用してください。
一方でSLACK_TEAM_IDは、Slackのワークスペースにあるものを使ってください。
http://{SLACK_TEAM_ID}.slack.com
slack.comの前のものがこれに当たります。
MCPサーバーの設定
今回は、Visual Studio Codeを使ってお手製のものを使用します。
Claude Desktopなどを使用される方は以下の記事が参考になると思います。
自分は、Node.jsで環境をたちあげましたが、他にいい方法がある方はぜひそちらを利用ください。
ここで、サーバーリソースをnpmリポジトリからダウンロードして npx で動作させる方法をやろうと思ったのですが、Githubアクセストークンが必要なようで.....
Github アクセストークンをまずは発行します。
Githubアクセストークン発行方法
自分のGitHubにいき
settings > Developers Settings > Personal access tokens > classic
と選択
必須スコープはread:packages
です。
こちらの記事が参考になりました。
作成できたら、ホームディレクトリに、~/.npmrc
ファイルを作成し記述、保存します。
スペースには注意してください!!
@ubie-oss:registry=https://npm.pkg.github.com
//npm.pkg.github.com/:_authToken=YOUR_PERSONAL_ACCESS_TOKEN
自分のNode.jsのバージョンは22だったような...
$ node -v
v22.14.0
自分が作業したいディレクトリに移動して、以下のパッケージをインストール
npm install @modelcontextprotocol/sdk
MCP関連の設定をVscodeで実施
MCPの設定を足します。Vscodeを開いて、設定アイコンをクリックし「設定」を選択してください。
「mcp」と検索キーワードで打つと、setting.jsonが出てくると思うのでそこから編集してください。
編集を選択したら以下の画面がでてきます。
デフォルトだとpythonが書かれているのかな?
{
"mcp": {
"inputs": [],
"servers": {
"mcp-server-time": {
"command": "python",
"args": [
"-m",
"mcp_server_time",
"--local-timezone=America/Los_Angeles"
],
"env": {}
}
}
}
}
今回はNode.js
を使うので以下のような設定にしました。
"mcp": {
"inputs": [],
"servers": {
"slack": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-slack",
"/Users/${Macユーザ名}/Projects/DevDay" // 自分の作業をしているディレクトリのパスを指定する
],
"env": {
"SLACK_BOT_TOKEN": "tokenをコピーする", // bot token
"SLACK_TEAM_ID": "team_idをコピーする" // teamId
}
}
}
},
"workbench.settings.applyToAllProfiles": []
}
これで保存しちゃってください。
MCPサーバー起動
そして、MCPサーバーを起動します。
小さい▶️起動
を押すとサーバーが立ち上がります。
GitHub Copilot Agent Modeを開く
VS Code Insider版で GitHub Copilot のチャットを開き、そしてメニューを変更してエージェントに切り替えます。
こいつをちゃんと、指定しないとSlackとおしゃべりできないので要注意です!!
- Agent
- コンテキストの追加のsettings.json
こちらに設定ができたら完了です。
チャットがちゃんと機能しているとこのように注意のダイアログがでてきます。特に変なものでなければ続行ボタンをクリックしてもらうと、ちゃんと会話が進んでいきます。
おわりに
いかがだったでしょうか?設定して実際に使うまでは、かなり長いのではないのかなと思います。
サイトによっては大事なアクセストークンの取得等の設定が抜けていたりするので、ちょっと試してみたい!とかいじってみたい!というときはこちらを参考にしてもらえると幸いです。
情報で足りていないところがあればまた書き直します。
参考