MCP в Node.js 2026: стандартизируем ИИ-агентов с API и БД
-
Представьте: ваш ИИ-агент должен тянуть данные из CRM, пушить лиды в Google Sheets, проверять погоду через API и писать в базу MySQL. А вместо единого интерфейса - куча кастомных оберток, промптов с JSON-парсингом и костылей на 500 строк. Все бесится от этой рутины. Я недавно тестил десяток агентов - без стандарта каждый проект превращается в зоопарк интеграций. Тут и спасает Model Context Protocol (MCP) от Anthropic: открытый стандарт, где ИИ подключается к внешним инструментам через единый интерфейс. Как USB-C для AI.
Смотрите, как это работает на практике. MCP строится на клиент-серверной модели:
- Хост-приложение (типа Cursor или ваш кастомный агент) запускает клиентов.
- Клиенты коннектятся к MCP-серверам (вашим или готовым).
- Handshake: обмениваются capabilities - какие инструменты доступны.
- ИИ вызывает tool, сервер выполняет и возвращает контекст.
Зачем бизнесу это нужно? Агенты перестают быть ‘чат-ботами в вакууме’. Теперь они реально работают: парсят лиды из Telegram, обновляют стоки в Shopify, мониторят серверы. Экономия на разработке - один MCP-сервер переиспользуется везде. Я подцепил свой к Cursor - и агент сам генерит SQL-запросы к БД без хардкода.
Практика: MCP-сервер на Node.js за 5 минут
Устанавливаем SDK:
npm install @modelcontextprotocol/sdkВот рабочий сервер для погоды + MySQL. Импортируем, регистрируем tools и запускаем через stdio (стандарт для Cursor/Claude).
import { Server } from "@modelcontextprotocol/sdk/server/index.js"; import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"; import { CallToolRequestSchema, ListToolsRequestSchema } from "@modelcontextprotocol/sdk/types.js"; // Подключаем MySQL (npm i mysql2) import mysql from 'mysql2/promise'; const db = await mysql.createConnection({ host: 'localhost', user: 'root', password: 'pass', database: 'leads', }); const server = new Server( { name: "biz-mcp-server", version: "1.0.0" }, { capabilities: { tools: {} } } ); // Список tools server.setRequestHandler(ListToolsRequestSchema, async () => ({ tools: [ { name: "get_weather", description: "Текущая погода по городу", inputSchema: { type: "object", properties: { city: { type: "string" }, units: { type: "string", enum: ["c", "f"] } }, required: ["city"], }, }, { name: "add_lead", description: "Добавить лид в БД", inputSchema: { type: "object", properties: { name: { type: "string" }, email: { type: "string" }, source: { type: "string" } }, required: ["name", "email"], }, }, ], })); // Выполнение tools server.setRequestHandler(CallToolRequestSchema, async (request) => { const { name, arguments: args } = request.params; if (name === "get_weather") { const { city = "Moscow", units = "c" } = args; // В проде - реальный API, тут мок const data = { city, temp: units === "c" ? 15 : 59, condition: "cloudy" }; return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] }; } if (name === "add_lead") { const { name, email, source } = args; await db.execute('INSERT INTO leads (name, email, source) VALUES (?, ?, ?)', [name, email, source]); return { content: [{ type: "text", text: `Лид ${name} добавлен!` }] }; } throw new Error(`Неизвестный tool: ${name}`); }); const transport = new StdioServerTransport(); await server.connect(transport); console.error("MCP Server готов!");Запуск:
npx @modelcontextprotocol/inspector node dist/server.js- откроется GUI для теста. Профит: ИИ в Cursor видит ваши tools и сам их вызывает. Подключил к агенту - он теперь сам добавляет лиды из чата в БД.Лайфхаки по MCP
- Тестируйте с inspector: визуалка лучше дебаггера.
- Read-only tokens для безопасности: list_repos да, push_commit нет.
- Scaffold из коробки:
npx @modelcontextprotocol/create-server my-server- готовый шаблон. - Stdio для локалки, HTTP для прод: масштабируйте под нагрузку.
- TypeScript схемы: валидация args на лету, меньше ошибок.
Честный отзыв: плюсы и минусы
Плюсы:
- Единый стандарт - Anthropic толкает, Cursor/Claude нативно поддерживают.
- Бесплатный SDK, open-source.
- Масштаб: от локал БД до enterprise API.
Минусы:
- SDK сыроват - редкие баги в error-handling.
- Нет встроенной авторизации - сами ролите tokens.
- Лимиты? Stdio для dev, в проде смотрите на ваш хостинг (бесплатно на Vercel).
Стоимость: 0 рублей. Только ваш Node.js. ROI: один сервер заменяет 5 интеграций, экономия 20+ часов/dev.
Я уже пилил MCP для лидогенерации - профит огромный. А вы как коннектите агентов к внешке? Кастомные wrapper’ы или уже на MCP перешли? Делитесь в коммах, обсудим реальные кейсы!
Здравствуйте! Похоже, вас заинтересовала эта беседа, но у вас ещё нет аккаунта.
Надоело каждый раз пролистывать одни и те же посты? Зарегистрировав аккаунт, вы всегда будете возвращаться на ту же страницу, где были раньше, и сможете выбирать, получать ли уведомления о новых ответах (по электронной почте или в виде push-уведомлений). Вы также сможете сохранять закладки и ставить лайки постам, чтобы выразить свою благодарность другим участникам сообщества.
С вашими комментариями этот пост мог бы стать ещё лучше 💗
Зарегистрироваться Войти© 2024 - 2026 ExLends, Inc. Все права защищены.