| 観点 | 案A:公式Slack MCP | 案B:korotovsky版(2インスタンス) |
|---|---|---|
| 複数WS対応 | ✕ 実質不可 1接続=1WSが仕様。公式に複数WS対応の明記なし |
◯ 構造的に成立 WSごとに別トークン・別名で2エントリ登録すれば動く |
| Claude Code側の壁 | あり 同一サーバーを2エントリ登録するとURL重複排除で2つ目が無効化される(issue #32549)。回避策は未文書化の裏技 |
なし(別コマンド・別envの独立プロセスとして登録するだけ) |
| claude.aiコネクタの制限 | issue #44243:1アカウント1WS限定。2026-04-06作成・2026-08-26更新時点でOPEN・未解決 | |
| 読み取り専用の担保 | OAuthスコープをsearch:read.*に絞れば可能 |
SLACK_MCP_ADD_MESSAGE_TOOL / SLACK_MCP_REACTION_TOOLを未設定のままにすれば書き込みツール自体が無効 |
| 規約リスク | 低い(通常のOAuthフローに従う限り) | 断定不可(複数WS同時読み取りを直接禁じる条項は見当たらないが、一次情報に明記なし) |
| 安定性 | 低い:裏技依存で将来のアップデートで壊れる可能性ありと検証者本人が明記 | 中:OSSでメンテ停滞気味(master最終更新2026-05-14)だが挙動は読める |
| 既知の懸念 | — | 第三者セキュリティ監査issue(DM read→send chaining等)あり。書き込み機能を有効化しない前提なら実害なし |
汎用インフラとして今後も使い続ける前提のため、裏技より挙動が読める 案B(korotovsky版) を採用します。
2インスタンスとも、以下の環境変数を設定しない(未設定=既定nilで無効)。
SLACK_MCP_ADD_MESSAGE_TOOL
SLACK_MCP_REACTION_TOOL
投稿・リアクションのツール自体がサーバー側に存在しない状態になる。
1段目が万一無効化された場合の保険として、8/19送信deny化と同じ枠組みでdeny層に追加。
conversations_add_message
reactions_add
reactions_remove
korotovsky版はトークンを .env に平文保存する前提。以下を追加で手当てする:
.env は chmod 600 でオーナーのみ読み取り可能に.gitignore に追加{
"mcpServers": {
"slack-cto-association": {
"type": "stdio",
"command": "npx",
"args": ["-y", "slack-mcp-server@latest"],
"env": {
"SLACK_MCP_XOXC_TOKEN": "(cto-associationのxoxcトークン)",
"SLACK_MCP_XOXD_TOKEN": "(cto-associationのxoxdトークン)"
}
},
"slack-ctoacommunity": {
"type": "stdio",
"command": "npx",
"args": ["-y", "slack-mcp-server@latest"],
"env": {
"SLACK_MCP_XOXC_TOKEN": "(ctoacommunityのxoxcトークン)",
"SLACK_MCP_XOXD_TOKEN": "(ctoacommunityのxoxdトークン)"
}
}
}
}
意図的に含めていない変数=SLACK_MCP_ADD_MESSAGE_TOOL / SLACK_MCP_REACTION_TOOL(1段目のガード)
"mcp__slack-cto-association__conversations_add_message",
"mcp__slack-cto-association__reactions_add",
"mcp__slack-cto-association__reactions_remove",
"mcp__slack-ctoacommunity__conversations_add_message",
"mcp__slack-ctoacommunity__reactions_add",
"mcp__slack-ctoacommunity__reactions_remove"
公式Slack MCPを.mcp.jsonに2エントリ登録する案は、Claude Code側のURL重複排除で2つ目が無効化される既知の壁があり、回避策は未文書化の裏技依存のため見送り。
mcpServersの構造上成立するはずという推測に基づく設計であり、導入後の実地確認が必須。対象:cto-association(運営側)・ctoacommunity(会員側)の2ワークスペース。各3〜5分。
Chromeでそのワークスペースを開く(例:https://cto-association.slack.com)。ログイン済みの状態で。
F12(またはメニュー→その他のツール→デベロッパーツール)
以下を貼り付けてEnter:
JSON.parse(localStorage.localConfig_v2).teams[Object.keys(JSON.parse(localStorage.localConfig_v2).teams)[0]].token
xoxc-から始まる文字列が表示されます。
DevTools「Application」タブ→左メニュー「Cookies」→該当のSlackドメインを選択。名前が d のCookieの値をコピー(xoxd-から始まる文字列)。
取得した2つの値をメモ帳などに一時控え。この後、差分案の該当箇所にご自身で貼り付けていただきます。
差分案ファイルの該当箇所に取得したxoxc/xoxdをご自身で貼り付けてください(AIには生トークンを渡さない運用を推奨)。貼り付け後、守さんに「貼った」とお声がけいただければ、反映のやり方をご案内します。
dという名前のCookieが見当たらない → Cookie一覧の検索欄に「d」と入力して絞り込む