🔤🔤 Мы сделали свое MCP для базы знаний. Наш топ-11 граблей и инсайтов на этом пути
Такс, это (реализация MCP) было довольно интересно. Много что есть рассказать, но попробую тут кратко пробежаться по основным инсайтам. Почему топ-11? Потому что больше я вспомнить не смог 👋
1. Есть два вида MCP которые вы можете реализовать: серверный и клиентский.
2. Самый незапарный вариант сделать клиентский MCP это написать прилку на TypeScript. Клод и прочие такое генрят на раз-два.
3. Клиентский вариант удобен, если вам нужно реализовать какую-то сложную авторизацию. К примеру в некоторых флоу нужно поднимать локальный сервер, чтобы принимать редиректы.
4. Клиентский вариант неудобен тем, что его нужно куда-то выложить и отдельно обновлять, если выходят новые функции на бэке. То есть вам нужно будет к примеру написать код эндпоинта который можно дергать, а потом код самого MCP подправить. Короче, как в классическом фронт-бэк взаимодействии.
5. Серверный вариант удобен в большинстве случаев. Главное, чтобы ваши безнес кейсы соответствовали подходящему флоу авторизации.
6. Для реализации серверного MCP использовали ModelContextProtocol.AspNetCore
7. Авторизация для нас стала самой тугой частью. И мы открыли ДВА сценария ИСПОЛЬЗОВАНИЯ MCP, о которых нужно было подумать: клиентский и серверный. Клиентский – это когда у вас пользователь MCP сидит за компом и может пройти все консент-скрины и прочую мудистику. Cерверный – это когда ваш клиент написал прилку на основе вашего MCP и там уже не получится давать права всякими кликами мыши в браузере.
8. Мы в итоге забили и написали простой советский, который есть у каждого… Personal Access Token
9. Забыли дать MCP тулзу которая позволяет получить пользователю самого себя. Без этого к примеру поиск “Дай мне все мои статьи” превращается из одного запроса в тысячу и выжирает пользователю токены, потому что агент качает и грепает.
10. Нужно будет подумать о том, как нам отдавать агентам большие статьи, потому что они порой могут ухуячить лимиты. Типа все идет ок. А потом агент выкачивает новостной дайджест, который ведется чуть ли не от начала времен и весит под мегабайт. Но пока вроде это ок работает. Может быть будем выдавать агенту вместе со статьей какой-то параметр типа длины и просить его не вкачивать такое себе полностью в контекст. В общем подумаем еще, что можно делать
11. Сам MCP у нас получился легковесный занял всего около 927 токенов. Для сравнения MCP гитхаба 6 000 токенов. За этим показателем стоит следить, примерно как за размером своего приложения.
Вот такие вот инсайты. Написал чуть сумбурно может быть. Но очень хотелось все это не забыть)
#mcp #ai #agents #devtools
Post #463
469
- 👍 5
- 🔥 3