Tool search protocol
Claude Code (и Claude в целом) видит частичный список инструментов. MCP-коннекторы могут быть подключены, но не появиться в видимом списке до явного поиска.
Правило
Если юзер просит сделать что-то с внешним сервисом (Slack, Google Drive, Linear, Notion, Jira, GitHub Issues, Asana и т.д.) — до того как сказать "не могу", проверь:
- Доступен ли
tool_search или эквивалент в среде. (В Claude Code это может быть mcp команда или tool_search_tool_bm25.)
- Поищи по ключевым словам сервиса.
- Если нашёлся — используй.
- Если нет — теперь можно отказаться, но конкретно: «Я не вижу инструмента для X. Если у тебя установлен MCP-сервер для X, проверь, что он подключён».
Антипаттерн
Юзер: "Запости в наш Slack #design"
Я: "Извини, не могу — нет интеграции со Slack."
Это до того, как проверил.
Правильный flow
Юзер: "Запости в наш Slack #design"
Я: *проверяю tool_search "slack"*
1) если найден slack_post — использую
2) если не найден — "не вижу Slack-интеграции; добавь её в MCP и перезапусти, или вкинь сообщение сам"
Команды поиска
- В Claude Code (с MCP) —
mcp list или mcp tools.
- Внутри агентного контекста — функция
tool_search_tool_bm25 или tool_search по имени.
- Документации MCP-серверов —
~/.claude/mcp.json или .claude/mcp.json в проекте.
Что искать по ключевым словам
| Запрос упоминает |
Поиск по |
| Slack |
slack, chat, message |
| Notion |
notion, page, database |
| Linear / Jira |
linear, jira, issue, ticket |
| Google Drive |
drive, gdrive, gdocs |
| Figma |
figma, design, frame |
| GitHub |
github, repo, pr, pull request |
| Email |
email, mail, smtp |
| Calendar |
calendar, event |
| Filesystem outside project |
file, bash, shell |
Не повторяй ошибку дважды
Если в одном чате уже искал и не нашёл — не зацикливайся: «не нашёл» один раз достаточно. Не делай tool_search на каждом сообщении.
Когда никакого MCP нет
Спроси юзера: «Хочешь подключить MCP-сервер для X? Минимальный путь: <ссылка/команда>». Это полезнее, чем отказ.
Что MCP обычно умеет
- Чтение содержимого (страницы, тикеты, файлы).
- Создание/обновление сущностей.
- Поиск.
И обычно не умеет:
- Долгоживущие подписки на события.
- Сложные UI-актиш с кликами по конкретным кнопкам.
- Что-то требующее пользовательского OAuth-flow в моменте.
1---2name: tool-search-protocol3description: До отказа «нет интеграции» с Slack/Drive/Linear — сначала поиск инструмента через tool_search. Триггеры: «есть ли коннектор», «найди инструмент».4---56# Tool search protocol78Claude Code (и Claude в целом) видит **частичный** список инструментов. MCP-коннекторы могут быть подключены, но не появиться в видимом списке до явного поиска.910## Правило1112Если юзер просит сделать что-то с внешним сервисом (Slack, Google Drive, Linear, Notion, Jira, GitHub Issues, Asana и т.д.) — **до того как сказать "не могу"**, проверь:13141. Доступен ли `tool_search` или эквивалент в среде. (В Claude Code это может быть `mcp` команда или `tool_search_tool_bm25`.)152. Поищи по ключевым словам сервиса.163. Если нашёлся — используй.174. Если нет — теперь можно отказаться, но конкретно: «Я не вижу инструмента для X. Если у тебя установлен MCP-сервер для X, проверь, что он подключён».1819## Антипаттерн2021```22Юзер: "Запости в наш Slack #design"23Я: "Извини, не могу — нет интеграции со Slack."24```2526Это **до того**, как проверил.2728## Правильный flow2930```31Юзер: "Запости в наш Slack #design"32Я: *проверяю tool_search "slack"*33 1) если найден slack_post — использую34 2) если не найден — "не вижу Slack-интеграции; добавь её в MCP и перезапусти, или вкинь сообщение сам"35```3637## Команды поиска3839- В Claude Code (с MCP) — `mcp list` или `mcp tools`.40- Внутри агентного контекста — функция `tool_search_tool_bm25` или `tool_search` по имени.41- Документации MCP-серверов — `~/.claude/mcp.json` или `.claude/mcp.json` в проекте.4243## Что искать по ключевым словам4445| Запрос упоминает | Поиск по |46|---|---|47| Slack | `slack`, `chat`, `message` |48| Notion | `notion`, `page`, `database` |49| Linear / Jira | `linear`, `jira`, `issue`, `ticket` |50| Google Drive | `drive`, `gdrive`, `gdocs` |51| Figma | `figma`, `design`, `frame` |52| GitHub | `github`, `repo`, `pr`, `pull request` |53| Email | `email`, `mail`, `smtp` |54| Calendar | `calendar`, `event` |55| Filesystem outside project | `file`, `bash`, `shell` |5657## Не повторяй ошибку дважды5859Если в одном чате уже искал и не нашёл — не зацикливайся: «не нашёл» один раз достаточно. Не делай tool_search на каждом сообщении.6061## Когда никакого MCP нет6263Спроси юзера: «Хочешь подключить MCP-сервер для X? Минимальный путь: <ссылка/команда>». Это полезнее, чем отказ.6465## Что MCP **обычно умеет**6667- Чтение содержимого (страницы, тикеты, файлы).68- Создание/обновление сущностей.69- Поиск.7071И **обычно не** умеет:72- Долгоживущие подписки на события.73- Сложные UI-актиш с кликами по конкретным кнопкам.74- Что-то требующее пользовательского OAuth-flow в моменте.