---
name: tool-search-protocol
description: Не отказывайся от MCP/connector-возможности сходу. Сначала ищи через `tool_search` — может, инструмент есть, но не виден.
when_to_use: Любой запрос упоминает Slack/Drive/Linear/Notion/GitHub/etc. До отказа — поиск.
---

# Tool search protocol

Claude Code (и Claude в целом) видит **частичный** список инструментов. MCP-коннекторы могут быть подключены, но не появиться в видимом списке до явного поиска.

## Правило

Если юзер просит сделать что-то с внешним сервисом (Slack, Google Drive, Linear, Notion, Jira, GitHub Issues, Asana и т.д.) — **до того как сказать "не могу"**, проверь:

1. Доступен ли `tool_search` или эквивалент в среде. (В Claude Code это может быть `mcp` команда или `tool_search_tool_bm25`.)
2. Поищи по ключевым словам сервиса.
3. Если нашёлся — используй.
4. Если нет — теперь можно отказаться, но конкретно: «Я не вижу инструмента для 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 в моменте.
