<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[MCP в Node.js 2026: стандартизируем ИИ-агентов с API и БД]]></title><description><![CDATA[<p dir="auto">Представьте: ваш ИИ-агент должен тянуть данные из CRM, пушить лиды в Google Sheets, проверять погоду через API и писать в базу MySQL. А вместо единого интерфейса - куча кастомных оберток, промптов с JSON-парсингом и костылей на 500 строк. <strong>Все бесится от этой рутины.</strong> Я недавно тестил десяток агентов - без стандарта каждый проект превращается в зоопарк интеграций. Тут и спасает <strong>Model Context Protocol (MCP)</strong> от Anthropic: открытый стандарт, где ИИ подключается к внешним инструментам через единый интерфейс. Как USB-C для AI.</p>
<p dir="auto">Смотрите, как это работает на практике. MCP строится на <strong>клиент-серверной модели</strong>:</p>
<ul>
<li>Хост-приложение (типа Cursor или ваш кастомный агент) запускает клиентов.</li>
<li>Клиенты коннектятся к MCP-серверам (вашим или готовым).</li>
<li><strong>Handshake</strong>: обмениваются capabilities - какие инструменты доступны.</li>
<li>ИИ вызывает tool, сервер выполняет и возвращает контекст.</li>
</ul>
<p dir="auto"><strong>Зачем бизнесу это нужно?</strong> Агенты перестают быть ‘чат-ботами в вакууме’. Теперь они реально работают: парсят лиды из Telegram, обновляют стоки в Shopify, мониторят серверы. Экономия на разработке - один MCP-сервер переиспользуется везде. Я подцепил свой к Cursor - и агент сам генерит SQL-запросы к БД без хардкода.</p>
<h2>Практика: MCP-сервер на Node.js за 5 минут</h2>
<p dir="auto">Устанавливаем SDK:</p>
<pre><code>npm install @modelcontextprotocol/sdk
</code></pre>
<p dir="auto">Вот рабочий сервер для погоды + MySQL. Импортируем, регистрируем tools и запускаем через stdio (стандарт для Cursor/Claude).</p>
<pre><code class="language-typescript">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 () =&gt; ({
  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) =&gt; {
  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 готов!");
</code></pre>
<p dir="auto">Запуск: <code>npx @modelcontextprotocol/inspector node dist/server.js</code> - откроется GUI для теста. <strong>Профит: ИИ в Cursor видит ваши tools и сам их вызывает.</strong> Подключил к агенту - он теперь сам добавляет лиды из чата в БД.</p>
<h2>Лайфхаки по MCP</h2>
<ul>
<li><strong>Тестируйте с inspector</strong>: визуалка лучше дебаггера.</li>
<li><strong>Read-only tokens для безопасности</strong>: list_repos да, push_commit нет.</li>
<li><strong>Scaffold из коробки</strong>: <code>npx @modelcontextprotocol/create-server my-server</code> - готовый шаблон.</li>
<li><strong>Stdio для локалки, HTTP для прод</strong>: масштабируйте под нагрузку.</li>
<li><strong>TypeScript схемы</strong>: валидация args на лету, меньше ошибок.</li>
</ul>
<h2>Честный отзыв: плюсы и минусы</h2>
<p dir="auto"><strong>Плюсы:</strong></p>
<ul>
<li><strong>Единый стандарт</strong> - Anthropic толкает, Cursor/Claude нативно поддерживают.</li>
<li>Бесплатный SDK, open-source.</li>
<li>Масштаб: от локал БД до enterprise API.</li>
</ul>
<p dir="auto"><strong>Минусы:</strong></p>
<ul>
<li>SDK сыроват - редкие баги в error-handling.</li>
<li>Нет встроенной авторизации - сами ролите tokens.</li>
<li>Лимиты? Stdio для dev, в проде смотрите на ваш хостинг (бесплатно на Vercel).</li>
</ul>
<p dir="auto">Стоимость: <strong>0 рублей</strong>. Только ваш Node.js. ROI: один сервер заменяет 5 интеграций, экономия 20+ часов/dev.</p>
<p dir="auto">Я уже пилил MCP для лидогенерации - профит огромный. А вы как коннектите агентов к внешке? Кастомные wrapper’ы или уже на MCP перешли? Делитесь в коммах, обсудим реальные кейсы!</p>
]]></description><link>https://forum.exlends.ru/topic/1963/mcp-v-node.js-2026-standartiziruem-ii-agentov-s-api-i-bd</link><generator>RSS for Node</generator><lastBuildDate>Wed, 20 May 2026 08:58:46 GMT</lastBuildDate><atom:link href="https://forum.exlends.ru/topic/1963.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 26 Mar 2026 14:55:57 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to MCP в Node.js 2026: стандартизируем ИИ-агентов с API и БД on Thu, 26 Mar 2026 20:06:40 GMT]]></title><description><![CDATA[<p dir="auto">Здорово, давай пример с веб поиском</p>
]]></description><link>https://forum.exlends.ru/post/2883</link><guid isPermaLink="true">https://forum.exlends.ru/post/2883</guid><dc:creator><![CDATA[Aladdin]]></dc:creator><pubDate>Thu, 26 Mar 2026 20:06:40 GMT</pubDate></item></channel></rss>