⚡️ Еще быстрый факт про серверный MCP сервер
Сегодня поймали еще одну проблемку-дилемку, которую можно было бы добавить в TOP-11 вопросов которые возникли при проектировании MCP:
⚠️ Не очень удобно через серверный MCP отправлять файлы.
Дело в том, что по сути есть два пути как передать файл.
1️⃣ Inline base64 прям в Body запроса.
2️⃣ Передать ссылку на точку где лежит ресурс и загрузить самому на сервере.
Путь 1 проще, но упирается в разнообразные лимиты сервера – body size и прочее.
Путь 2 замороченнее для клиента, так как ему нужно сначала закгрузить куда-то на отдельный сервер файл, и только потом уже передать его нам, чтобы мы могли его прикопать.
С локальным MCP появляется третий путь: клиент передаёт в тул просто путь к файлу, а сервер сам читает его с диска и стримит нам обычным multipart-запросом — хоть 500 MB, никакого base64 и лимитов на body.
🅰️ Итого: при проектировании MCP и выборе между серверным и клиентским вариантами, хорошо бы подумать о том, как вы будете пересылать вот такие крупные куски.
PS: Есть еще такой прикол. Что если модельке дать возможность пихнуть инлайновый base64, то нужно как-то ей говорить, чтобы она его руками не генерила. Нейронки конечно сейчас умные, но не факт, что клиент использует самую умную и есть риск наткнуться на то, что при передаче картинки в 1Мб моделька внезапно сожрет пол-ляма дорогущих выходных токенов. Что есть полная жесть. Но тут непонятно, мы как поставщик MCP об этом должны заботиться или сам пользователь?
Со своей стороны мы дескрипшен добавили, чтобы такого не случилось.
#mcp #ai #agents #devtools
Post #468
338