TGViewer
Костя 8Бит | Fullstack AI Костя 8Бит | Fullstack AI @kostya_web_dev · 1.04K subscribers
Post #260 554
Костя 8Бит | Fullstack AI MCP изнутри: составные части и пишем свой сервер В прошлый раз разобрали зачем нужен MCP и какую проблему он решает. Сегодня смотрим что там внутри и как написать свой сервер с нуля. Три участника: Host, Client, Server Любая MCP-система состоит из трёх частей.…
1000 тулов MCP для ИИ-агента

Мы уже разобрались что такое MCP, из чего он состоит и как написать свой сервер. Но часто совершают серьезную ошибку при работе с MCP.

Этой ошибкой является дать агенту все доступные тулы и отправить работать. Агент не понимает контекст так, как понимаете его вы. Он выбирает тулы на основе описаний и текущего промпта. И может вызвать тул, который не предусматривался.
Но почему это так критично?

1. Безопасность
Каждый тул расширяет поверхность некорректного выполнения.
Представьте агент для аналитики продаж. Вы подключили ему MCP-сервер с тулами: get_sales_data, send_email, delete_records, update_user.
Агент хочет отправить отчёт вызывает функцию send_email. Но в промпте была неоднозначность, и он решает "помочь" почистить старые данные через delete_records.
Никакого злого умысла. Просто был доступ, и он решил что так правильно.

2. Надёжность
Чем больше тулов, тем выше шанс что агент выберет не тот. Модели путаются при большом выборе, особенно если описания тулов похожи между собой. Результат: непредсказуемое поведение, которое сложно дебажить.

3. Скорость и стоимость
Это часто забывают. Каждый тул это дополнительные токены в контексте. Описание, параметры, схема всё это обрабатывается при каждом запросе.
Чем больше тулов, тем:
- дольше обрабатывается запрос
- дороже каждый вызов (токены описаний входят в input tokens)
- ниже точность выбора нужного тула


При 5 тулах модель выбирает правильный почти всегда. При 50 точность заметно падает.

Принцип минимальных привилегий
Тот же принцип, что и в безопасности обычных систем: давай доступ только к тому, что нужно для конкретной задачи.
Агент для чтения аналитики? Только read тулы.
Агент для отправки отчётов? Только на отправку.

Один агент = один набор тулов под его задачу.

Как это на практике

Регистрируем тулы динамически только нужные для конкретного агента:

// ❌ так лучше не делать
server.tool("delete_records", ...);
server.tool("send_email", ...);
server.tool("update_user", ...);

// ✅ только то, что нужно агенту
const allowedTools = getToolsForAgent(agentRole); // ["get_sales_data"]

allowedTools.forEach(toolName => {
server.tool(toolName, toolDefinitions[toolName]);
});


В реальности можно описывать доступные функции агенту в зависимости от его роли.

Что ещё можно сделать
Логировать каждый вызов тула. Если агент что-то сломал, вы должны знать что именно и когда.
Перед delete или update добавить еще проверку доп проверку.
Ну и обязательно тестировать агента в изолированной среде перед боевым запуском.
  • 👍 4
  • ❤ 2
  • 🔥 1
More from @kostya_web_dev
  1. Sep 23, 2026Рынок мёртв. Ничего не поделать (почти) По моим ощущениям, с 2024 года работу стало находи…
  2. Sep 22, 2026Сезон начался В сентябре hr прям активизировались, много пишут на линке/хх. Данная позиция…
  3. Sep 22, 2026Нам никогда не внедрить ИИ правильно Вот тут упомянул одну из серьезных проблем на текущий…
  4. Sep 21, 2026Как я не нашел работу, а потом Бац и нашел! Свитч в ии-инженера Последние годы меня подбеш…
  5. Sep 18, 2026Голодные эйчары пишут сами После летнего затишья эйчары активно начали писать по вакансиям…
  6. Sep 17, 2026Да я вообще все знаю про агентов и ИИ Пообщался с тимлидом из одной крупной ритейл компани…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →