Перейти к содержанию
  • Лента
  • Категории
  • Последние
  • Метки
  • Популярные
  • Пользователи
  • Группы
Свернуть
exlends
Категории
  1. Главная
  2. Категории
  3. Языки программирования
  4. TypeScript
  5. MCP в Node.js 2026: стандартизируем ИИ-агентов с API и БД

MCP в Node.js 2026: стандартизируем ИИ-агентов с API и БД

Запланировано Прикреплена Закрыта Перенесена TypeScript
mcpnode.jsии-агентыapi-интеграции
1 Сообщения 1 Постеры 4 Просмотры
  • Сначала старые
  • Сначала новые
  • По количеству голосов
Ответить
  • Ответить, создав новую тему
Авторизуйтесь, чтобы ответить
Эта тема была удалена. Только пользователи с правом управления темами могут её видеть.
  • kirilljsxK Не в сети
    kirilljsxK Не в сети
    kirilljsx
    js
    написал отредактировано kirilljsx
    #1

    Представьте: ваш ИИ-агент должен тянуть данные из 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 перешли? Делитесь в коммах, обсудим реальные кейсы!

    1 ответ Последний ответ
    0

    Здравствуйте! Похоже, вас заинтересовала эта беседа, но у вас ещё нет аккаунта.

    Надоело каждый раз пролистывать одни и те же посты? Зарегистрировав аккаунт, вы всегда будете возвращаться на ту же страницу, где были раньше, и сможете выбирать, получать ли уведомления о новых ответах (по электронной почте или в виде push-уведомлений). Вы также сможете сохранять закладки и ставить лайки постам, чтобы выразить свою благодарность другим участникам сообщества.

    С вашими комментариями этот пост мог бы стать ещё лучше 💗

    Зарегистрироваться Войти

    Категории

    • Главная
    • Новости
    • Фронтенд
    • Бекенд
    • Языки программирования

    Контакты

    • Сотрудничество
    • info@exlends.com

    © 2024 - 2026 ExLends, Inc. Все права защищены.

    Политика конфиденциальности
    • Войти

    • Нет учётной записи? Зарегистрироваться

    • Войдите или зарегистрируйтесь для поиска.
    • Первое сообщение
      Последнее сообщение
    0
    • Лента
    • Категории
    • Последние
    • Метки
    • Популярные
    • Пользователи
    • Группы