Comments 4
В логах mcp-сервера мы увидим, что были вызваны все три метода в правильной последовательности:
Я правильно понял, что порядок гарантирован только "здравым смыслом" модели? Интересно, что будет, если дернуть реквест 1000 раз. Порядок сохранится? А если тулы будут иметь близкие по смыслу дескрипшны?
Да, порядок в явном виде никак не определяется и отдаётся на откуп модели. Всегда когда мы работаем с LLM, то оперируем некоторой вероятностью. Если тулы будут иметь похожие описания, тогда да, велика вероятность вызова не того метода.
Поэтому я ещё раз хочу подчеркнуть, что описания инструментов MCP - чуть ли не самое главное, на что нужно сделать упор.
Но если описания более-менее подробные, то и 1000 вызовов будут выполнены корректно.
Кстати, сейчас подумал, что если нужно обеспечить 100% последовательность, то можно создать некий прокси MCP-метод, внутри которого этот порядок будет зашит. Тогда и контекст уменьшим. Эдакий паттерн "Фасад" в нейросетях)
А что насчёт тех функций которые будут выдавать чувствительные данные? Как их можно будет ограничить для использования этой модели? К примеру продолжая вашу идею с напоминаниями, когда мы разовьем этот сервис и у нас будет много пользователей и соответственно у каждого будут свои напоминания, как мы можем гарантировать что при обслуживании конкретного пользователя, модель не создаст напоминание другому пользователю, или не отдаст нашему пользователю напоминая других? Есть ли какие то стандарты в этом протоколе которые гарантируют безопасность?
Вообще защита чувствительных данных - это немного другое. MCP - это по сути универсальный протокол интеграции.
Если взять конкретно ваш пример, чтобы напоминания не создавались другому пользователю - это легко обеспечить. Достаточно передавать в метод идентификатор пользователя (чем более сложный, тем лучше). Например, uid. LLM не сможет "выдумать" такой uid. Она должна будет его как-то получить или запросить. А если попытается передать какой-то левый - MCP-сервер просто вернёт ошибку и напоминание не создаст.
Spring AI: Model Context Protocol