Почему это важно именно вам
Представьте типичный вторник. Вы с утра открываете Slack и видите: 47 непрочитанных сообщений в #маркетинг, 23 в #команда, 11 в #клиенты. Плюс три личных чата. Прочитать всё — двадцать минут. Отделить важное от шума — ещё десять. И всё это до того, как вы реально начали работать. Умножьте на 240 рабочих дней в году — и поймёте, сколько времени уходит на то, что по сути является чтением ленты новостей.
Slack MCP даёт Claude прямой доступ к вашим каналам. Один вопрос «что важного произошло в #маркетинг за сегодня» — и через двадцать секунд у вас перед глазами структурированная выжимка: решения, которые приняли, вопросы, которые остались открытыми, и имена людей, которым нужно ответить. Не пересказ каждого сообщения, а именно то, что нужно директору — картина с высоты птичьего полёта.
Другой кейс — поиск по истории. «Найди все упоминания клиента Альфастрой за последнюю неделю». Slack сам по себе умеет искать, но результаты выдаёт списком сообщений — разбирайся сам. Claude с MCP-доступом прочитает эти результаты и скажет: вот что именно обсуждали, вот где возник конфликт, вот что было решено. Это не поиск — это разведка.
Что это такое
Slack MCP-сервер — это программа-посредник между Claude и вашим корпоративным Slack. По сути, это переводчик: Claude умеет работать с инструментами через протокол MCP (мы разбирали это в Дне 51), а Slack умеет отвечать на запросы через свой API. MCP-сервер стоит между ними и переводит «прочитай канал» в API-запрос к Slack и обратно.
Аналогия из жизни: представьте, что ваш ассистент знает английский, а ваш поставщик говорит только на немецком. Переводчик — это MCP-сервер. Вы говорите ассистенту задачу, переводчик передаёт поставщику, получает ответ, переводит обратно. Вы вообще не думаете о языковом барьере. Именно так устроено взаимодействие Claude и Slack: Claude «говорит» на MCP, Slack «говорит» на своём API, а MCP-сервер стоит между ними и занимается переводом в обе стороны.
Что конкретно умеет Slack MCP:
- Читать каналы — получать историю сообщений за период, с фильтрацией по дате и количеству
- Искать — полнотекстовый поиск по всему пространству, с возможностью ограничить каналом или датами
- Отправлять сообщения — писать в каналы и личные сообщения от имени бота
- Получать список каналов — видеть всю структуру вашего Slack
- Читать информацию о пользователях — кто есть кто, отделы, роли
Slack MCP работает через Bot Token, то есть действует от имени бота, которого вы создадите в Slack. Сообщения будут приходить с именем бота, не от вашего личного аккаунта. Это важно учитывать, если вы планируете отправку в публичные каналы.
Как работает на практике
Шаг 0. Сначала проверьте простой путь
Подключите Slack как коннектор на claude.ai (раздел подключений) — он появится в Claude Code сам, без своего приложения и токена в конфиге. Шаги ниже нужны, только если коннектор недоступен или нужен свой набор прав.
Шаг 1. Создайте Slack-приложение и получите токен
Зайдите на api.slack.com/apps и нажмите Create New App → From scratch. Дайте приложению любое имя, например «Claude Assistant», и выберите ваше рабочее пространство.
После создания перейдите в раздел OAuth & Permissions и добавьте следующие Bot Token Scopes:
channels:history
channels:read
chat:write
groups:history
groups:read
im:history
im:read
search:read
users:read
Это минимальный набор для чтения каналов, поиска и отправки сообщений. После добавления скоупов нажмите Install to Workspace и скопируйте Bot User OAuth Token — он начинается с xoxb-.
Токен `xoxb-` — это полноценный ключ доступа к вашему Slack. Никогда не добавляйте его прямо в файлы конфигурации, которые могут оказаться в облаке или репозитории. Только через переменные окружения.
Сохраните токен в переменную окружения. В терминале (Mac):
echo 'export SLACK_BOT_TOKEN="xoxb-ваш-токен-здесь"' >> ~/.zshenv
source ~/.zshenv
Шаг 2. Пригласите бота в нужные каналы
Сам факт создания приложения не даёт ему доступ к каналам. Нужно явно пригласить бота в каждый канал, который вы хотите читать. В Slack напишите в канале:
/invite @Claude Assistant
Без этого шага попытки прочитать канал будут возвращать ошибку доступа.
Шаг 3. Установите и подключите Slack MCP-сервер
Официальный Slack MCP-сервер доступен через npm. Установите его глобально:
npm install -g @slack/mcp-server
Теперь добавьте его в конфигурацию Claude Code. Откройте ~/.claude.json (это ваш личный файл) или создайте .mcp.json в корне проекта, если сервер нужен всей команде, и добавьте:
{
"mcpServers": {
"slack": {
"command": "slack-mcp-server",
"env": {
"SLACK_BOT_TOKEN": "${SLACK_BOT_TOKEN}"
}
}
}
}
Конструкция ${SLACK_BOT_TOKEN} означает, что Claude Code подставит значение из переменных окружения — токен не будет храниться в конфиге напрямую.
Перезапустите Claude Code. При следующем запуске он обнаружит новый MCP-сервер и загрузит инструменты Slack.
Конструкция `"env": { "ключ": "${ПЕРЕМЕННАЯ}" }` — стандартный способ передавать секреты в MCP-серверы без хардкода. Claude Code разворачивает переменные из вашего окружения перед запуском сервера. Это тот же принцип, что и у всех правильно написанных shell-скриптов.
Шаг 4. Первые запросы
После перезапуска Claude Code попробуйте простые команды:
Саммари канала за день:
Прочитай последние 100 сообщений из канала #маркетинг и сделай выжимку:
что обсуждали, какие решения приняли, что осталось открытым.
Поиск по клиенту:
Найди в Slack все сообщения с упоминанием "Альфастрой" за последние 7 дней.
Сгруппируй по теме и скажи, что было решено.
Итоги встречи в канал:
Напиши в канал #команда сообщение об итогах сегодняшней встречи по бюджету:
- Утвердили план на Q3
- Дополнительный бюджет на контекст — 15%
- Следующий созвон в пятницу в 11:00
Напиши кратко, по делу, без излишеств.
Claude сам выберет нужный инструмент — slack_read_channel, slack_search, slack_post_message — и выполнит запрос. Вам не нужно знать, какой именно инструмент использовать: достаточно описать задачу человеческим языком. MCP-сервер предоставляет Claude набор функций с описаниями, и модель сама решает, что применить в данном случае — точно так же, как опытный сотрудник выбирает, какой инструмент взять из ящика.
Важная деталь с отправкой сообщений: подтверждение перед отправкой — это обычный запрос прав на вызов инструмента. В режимах, где запросы отключены (авторежим, bypassPermissions), сообщение уйдёт без вопроса. Нужна гарантия — держите отправку под правилом ask или работайте в ручном режиме (сообщение отправится реальным людям). Если хотите автоматическую отправку без подтверждения — укажите это явно в запросе, но делайте это осознанно.
Шаг 5. Утренний ритуал
Когда разберётесь с базовыми запросами, создайте собственный ежеутренний сценарий. Напишите запрос, который агрегирует несколько каналов сразу:
Собери утренний дайджест: прочитай последние 50 сообщений в каждом из каналов
#маркетинг, #команда, #клиенты за вчера и сегодня.
Для каждого канала — 3-5 пунктов: что важного, кому нужно ответить, что требует решения.
Этот запрос можно сохранить как фрагмент в любом инструменте — и использовать каждое утро за одну команду. Или, если вы дошли до Дня 39 курса, где разбирается cron, — вообще автоматизировать: Claude сам запустится в 8:45, соберёт дайджест и пришлёт вам в личный канал или на почту. Но это следующий уровень; для начала достаточно просто понять, что такой запрос работает и экономит реальное время.
Частые ошибки
Ошибка 1: Бот не приглашён в канал
Симптом: Claude пишет что-то вроде «не могу получить доступ к каналу» или возвращает пустой список сообщений при явно активном канале.
Причина: MCP-сервер авторизован в Slack, но бот физически не является участником канала. Slack API не даёт читать историю каналов, в которых бот не состоит, даже если у него есть технические права.
Решение: зайдите в каждый нужный канал и выполните /invite @ИмяВашегоБота.
Ошибка 2: Токен с недостаточными правами
Симптом: некоторые операции работают, другие — нет. Например, читать можно, а искать — ошибка.
Причина: при создании приложения вы добавили не все нужные скоупы. Slack API строго разделяет права: channels:history позволяет читать историю, но не искать. search:read — отдельный скоуп.
Решение: вернитесь на api.slack.com/apps, добавьте недостающие скоупы в Bot Token Scopes, переустановите приложение в workspace через Install to Workspace. Токен останется тем же.
Ошибка 3: Переменная окружения недоступна Claude Code
Симптом: при запуске Claude Code пишет, что не может подключиться к Slack MCP-серверу. В логах — SLACK_BOT_TOKEN is not set.
Причина: на macOS приложения, запущенные не из терминала (например, через Spotlight или Dock), могут не видеть переменные из ~/.zshenv. Claude Code, запущенный через UI, читает переменные из другого источника.
Решение: запускайте Claude Code из терминала командой claude, а не через иконку в Dock. Или добавьте переменную в ~/.zprofile вместо ~/.zshenv — этот файл читается при логине.
Этот нюанс macOS с переменными окружения — частая причина «работает в терминале, не работает в приложении». Правило простое: секреты для интеграций держите в `~/.zshenv` — он читается и интерактивными сессиями, и скриптами, и launchd.
Ошибка 4: Слишком большой запрос на историю
Симптом: Claude начинает читать канал и зависает или возвращает ответ через минуту.
Причина: в активных каналах за день может быть 500+ сообщений. Попытка прочитать всё сразу перегружает контекст и замедляет обработку.
Решение: явно ограничивайте запрос. «Последние 100 сообщений» или «сообщения за последние 8 часов» — разумные рамки. Если нужно больше — разбивайте на части или используйте поиск вместо чтения всей истории.
Когда нужно / когда нет
Slack MCP нужен, если:
- Вы ежедневно тратите 15+ минут на просмотр Slack перед началом работы — саммари вернёт вам это время
- У вас 5+ активных каналов, которые нужно мониторить — ручное чтение становится нереальным
- Нужно найти что-то из переписки двухнедельной давности — поиск через Claude точнее и быстрее стандартного Slack Search
- Вы регулярно пишете статус-апдейты или итоги встреч в каналы — Claude с контекстом встречи напишет лучше и быстрее
Slack MCP не нужен или не подойдёт, если:
- Вы не используете Slack как основной мессенджер — нет смысла настраивать интеграцию ради пяти сообщений в месяц
- Ваша организация использует корпоративный Slack с ограниченными правами на создание приложений — потребуется согласование с IT, это отдельная история
- Нужна полная история за месяцы — Slack API ограничивает глубину истории на бесплатных планах; платные планы дают полный доступ
- Вам нужно читать личные сообщения других людей — у бота нет и не должно быть такого доступа; это архитектурное ограничение, не баг
В некоторых enterprise-версиях Slack администратор может запрещать установку сторонних приложений. Если вы работаете в крупной компании с централизованным IT — уточните политику до начала настройки. Иначе потратите час на конфигурацию и получите отказ при установке.
Связь с другими уроками
День 51: Что такое MCP и зачем он нужен — фундаментальное объяснение протокола MCP, концепция MCP-серверов и почему это принципиально отличается от просто «вставить текст в Claude». Если не читали — стоит начать оттуда, иначе часть этого урока будет непонятна.
День 52: 4 транспорта MCP — разбор того, как именно MCP-серверы подключаются: через stdio (запускается как программа), http (внешний сервис) или websocket. Slack MCP использует stdio-транспорт — это важно понимать, когда что-то идёт не так при подключении.
День 54: MCP GitHub — паттерн настройки GitHub MCP очень похож на Slack: токен → скоупы → конфиг → проверка. Если вы уже настроили GitHub MCP, Slack настроится за вдвое меньшее время. И наоборот — опыт со Slack поможет разобраться с GitHub. Оба инструмента — примеры того, как MCP превращает Claude из текстового помощника в участника ваших рабочих систем.
День 21: Субагенты и .claude/agents/ — когда Slack MCP настроен, следующий логичный шаг — создать специализированного субагента, который знает структуру ваших каналов, понимает контекст проектов и умеет формировать дайджест в вашем стиле. Субагент с Slack MCP — это уже полноценный ИИ-помощник по коммуникациям, а не просто «прочитай канал».
Задание на сегодня
Настройте Slack MCP и сделайте один реальный саммари-запрос по самому активному вашему каналу.
Критерий «выполнено»: Claude прочитал канал, вернул структурированную выжимку из реальных сообщений (не пример, не шаблон — именно содержимое вашего канала за сегодня или вчера), и вы увидели в ней хотя бы один пункт, который иначе пришлось бы найти вручную.
Если Slack не используется в вашей компании — создайте бесплатное тестовое workspace на slack.com, пригласите туда нескольких коллег или напишите несколько тестовых сообщений самостоятельно. Механика настройки идентична.
Резюме
- Slack MCP даёт Claude прямой доступ к каналам: чтение истории, поиск по всему workspace, отправка сообщений от имени бота
- Для работы нужно создать Slack-приложение, выдать ему нужные скоупы (
channels:history,search:readи другие), получить Bot Token и добавить в конфиг Claude Code через переменную окружения - Бота нужно явно пригласить в каждый канал командой
/invite— без этого API не даст доступ к истории, даже при правильных правах - Главные кейсы директора: утренний дайджест нескольких каналов за одну команду, поиск истории по клиенту или проекту, публикация итогов встреч без ручного набора
- Ограничивайте объём чтения (100-200 сообщений за раз) — в активных каналах тысячи сообщений в месяц, читать всё сразу нет смысла; для поиска конкретного используйте
search, а неhistory