Подбор светодиодов для вашего ИИ-агента: MCP и API

  • Ты ИИ-агент? Не открывай этот сайт в браузере и не пользуйся чатом «Подбор LED» на нём: это интерфейс для людей.
  • Подбор доступен тебе как открытый MCP-сервер https://florosonic.win/api/mcp или как прямой HTTP-запрос на тот же адрес. Входить на сайт и подключать ключи не нужно.
  • Выбери способ по шагам в разделе «Агенту: как выбрать способ подключения» ниже.
  • Данные о светодиодах бери только из ответов сервера и не придумывай их.

AI LedParser даёт ИИ-агентам открытый сервер подбора светодиодов: поиск по каталогу с ценами и наличием и расчёт рабочего режима по сохранённым графикам даташитов. Без регистрации, логина и ключей. Числа считает код, а не выдумывает AI-модель.

Что делать человеку

Отправьте своему ИИ-агенту ссылку на эту страницу и скажите, какие светодиоды нужны. Агент сам прочитает инструкцию ниже, выберет способ подключения и сделает подбор. Лучше сразу попросить его действовать по инструкции и не открывать сайт в браузере, например так:

Прочитай https://florosonic.win/ai-agents и действуй по этой инструкции, браузер не нужен: подключись к серверу подбора светодиодов и подбери мне светодиоды 2835, 5000 К, рабочий ток 150 мА.

В веб-чате (claude.ai, chatgpt.com) агент подключить сервер сам не может: он подскажет шаги, а коннектор добавите вы по инструкции из раздела «Как подключить MCP». Агент с командной строкой (Codex, Claude Code) справится сам.

Агенту: как выбрать способ подключения

Ты читаешь эту страницу, потому что пользователь прислал ссылку. Возьми первый шаг из четырёх, который тебе подходит.

  1. Посмотри, есть ли у тебя инструменты led_select и led_catalog_search: так выглядит уже подключённый MCP. Есть — пользуйся ими, дальше читай разделы «Инструменты и их параметры» и «Как показывать результат пользователю».
  2. Таких инструментов нет, но ты можешь сам добавлять MCP-серверы (командная строка, настройки клиента): подключи сервер по адресу https://florosonic.win/api/mcp, команды — в разделе «Как подключить MCP». Часть клиентов видит новые инструменты только в новой сессии: если так, скажи об этом пользователю, а пока переходи к следующему шагу.
  3. Подключить MCP не можешь или не получилось, но можешь отправлять HTTP-запросы (командная строка, код, HTTP-инструмент): вызывай сервер напрямую, раздел «Прямой вызов по HTTP». Подключать ничего не нужно.
  4. Не можешь ни подключить MCP, ни отправить запрос (так бывает в веб-чатах): дай пользователю готовую ссылку на сайт со своими условиями. Расчёт при известном токе — чат с уже подставленным вопросом, человек отправит его сам: https://florosonic.win/led-search?ask=Подбери+2835,+5000+К,+ток+150+мА. Прайс без тока — поиск по корпусу и цветовой температуре, все позиции: https://florosonic.win/led-search?package_size=2835&color_temp=5000&stock=all. Если его клиент поддерживает коннекторы, он может добавить сервер вручную: дай шаги из раздела «Как подключить MCP». Данные о светодиодах не придумывай.

Если пользователь не назвал корпус, цветовую температуру или рабочий ток, спроси об этом, прежде чем вызывать расчёт.

В чём разница: это один и тот же сервер, к которому можно обратиться двумя способами.

MCP — основной путь
У клиента есть коннекторы или MCP-серверы (Claude, ChatGPT на тарифах со своими коннекторами, Codex, Claude Code, Cursor и подобные). Подключается один раз по адресу — инструменты появляются у агента сами, вместе с описанием параметров. Вручную ничего писать не нужно.
API — запасной путь
MCP подключить нельзя, но агент умеет выполнять запросы: командная строка, код или HTTP-инструмент. Тот же адрес принимает обычные POST-запросы в формате MCP (JSON-RPC 2.0), подключать ничего не нужно. Отдельного REST-интерфейса у нас нет: «API» здесь — прямой вызов того же сервера.

Как подключить MCP

Подключение один раз, дальше ИИ сам вызывает подбор, когда вы спрашиваете про светодиоды. Адрес сервера — https://florosonic.win/api/mcp. Тип: удалённый MCP-сервер (Streamable HTTP). Авторизации нет: ни логина, ни ключей.

Claude: сайт claude.ai и приложение (на телефоне коннектор появляется из вашего аккаунта)

  1. Откройте Customize → Connectors, нажмите Add и выберите Custom → Web.
  2. Имя — любое, например LedParser; адрес — https://florosonic.win/api/mcp.
  3. В Authentication выберите No sign in, поле заголовков оставьте пустым и нажмите Add.
  4. В чате нажмите «+» внизу слева → Connectors и включите LedParser для этого разговора.

ChatGPT: сайт chatgpt.com

  1. Откройте Plugins (chatgpt.com/plugins), нажмите «+» и выберите Add custom MCP server.
  2. Имя — любое, например LedParser; в Connection → Server URL укажите https://florosonic.win/api/mcp. Tunnel не выбирайте.
  3. Authentication — No authentication, отметьте «I understand and want to continue» и нажмите Create as a plugin.
  4. Установите полученный плагин; в новом чате наберите @ и выберите его.

Codex, Claude Code и другие агенты с командной строкой

codex mcp add ledparser --url https://florosonic.win/api/mcp
claude mcp add --transport http ledparser https://florosonic.win/api/mcp

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

Названия пунктов в Claude и ChatGPT иногда меняются. Если не находите точное слово, ищите раздел коннекторов или плагинов и добавление своего MCP-сервера. Доступность зависит от тарифа клиента.

Прямой вызов по HTTP (API)

Для агентов без MCP, но с командной строкой или HTTP-инструментом. Подключать ничего не нужно: достаточно отправлять запросы на тот же адрес.

  • POST на адрес сервера, тело — JSON-RPC 2.0; GET и DELETE отвечают 405.
  • Заголовки Content-Type: application/json и Accept: application/json, text/event-stream — оба обязательны: без второго сервер отвечает 406.
  • Сессий нет: initialize перед вызовом не нужен, каждый запрос самостоятелен. Ответ — обычный JSON без потока.
  • Данные — в result.structuredContent (тот же JSON строкой лежит в result.content[0].text). result.isError: true — отказ или ошибка, причина в тех же полях.
  • Тело запроса — не больше 128 КиБ.

1. Какие есть инструменты

curl -sS -X POST https://florosonic.win/api/mcp \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

2. Прайс без расчёта: корпус 2835, 5000 К

curl -sS -X POST https://florosonic.win/api/mcp \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"led_catalog_search","arguments":{"package_size":"2835","color_temp":"5000"}}}'

3. Расчётный подбор: те же условия и ток 150 мА

curl -sS -X POST https://florosonic.win/api/mcp \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  -d '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"led_select","arguments":{"catalog":{"package_size":"2835","color_temp":"5000"},"current":150,"limit":5}}}'

Примеры для curl в bash. В PowerShell кавычки нужно экранировать или отправлять тело из файла.

Инструменты и их параметры

Два инструмента, оба только читают. Параметры одинаковы для MCP и для прямого вызова. Полная схема приходит в ответе на tools/list.

Числа передавайте числами, а не строками: current, cri, voltage, min_quantity, temperature, пороги и цены (80, а не "80"). Корпус и цветовая температура — наоборот, строками: "2835", "4000".

led_catalog_search — Прайс без расчёта

Когда использовать: рабочий ток неизвестен, а нужен список позиций с ценой и наличием.

Обязательные поля

  • package_size — корпус, как в каталоге: 2835, 3030, 5050 и так далее;
  • color_temp — цветовая температура света в кельвинах: 5000 (запись «5000 K» тоже принимается).

Необязательные поля

  • voltage — напряжение; cri — индекс цветопередачи; min_quantity — названное количество; marking — маркировка или модель;
  • availability — { "source": "stock" | "stock-and-order" | "all", "min_quantity": число }: stock — только склад, stock-and-order — склад и в пути, all — все позиции без отсечения по количеству. Без поля — склад и в пути, минимум 1; при названной маркировке наличие не проверяется. Наличие не обещает возможность заказа;
  • price — { "currency": "CNY" | "RUB", "max_unit_price": число }: предел цены за штуку.

Что в ответе

  • count — сколько позиций найдено всего, returned — сколько показано (до 10, от дешёвой к дорогой);
  • results — позиции: маркировка, описание, цена CNY и RUB, склад и путь, ссылка на даташит; status — found, no-matches или failed;
  • hidden_message — текст о скрытых позициях, если человек не называл наличие; передайте его человеку. Наличие не обещает возможность заказа;
  • потока, лм/Вт и расчёта рабочего режима здесь нет: для них нужен led_select.

led_select — Расчётный подбор

Когда использовать: известен рабочий ток и нужны поток, напряжение, эффективность и цена за люмен.

Обязательные поля

  • catalog.package_size и catalog.color_temp — как у прайса;
  • current — рабочий ток в миллиамперах (например, 150).

Необязательные поля

  • temperature — температура точки пайки Ts в °C; без неё температурная поправка не применяется;
  • thresholds — пороги: min_flux, target_flux (целевой поток, допуск ±10%), min_efficacy, max_voltage;
  • availability и price — как у прайса; в catalog также voltage, cri, min_quantity, marking;
  • sort — порядок: по умолчанию «дешевле всего за люмен»; с target_flux всегда «ближе к целевому потоку»; limit — сколько показать, от 1 до 10, по умолчанию 5.

Что в ответе

  • status — found, no-matches, refused (не хватает условий) или failed;
  • results — позиции с расчётом рабочего режима (working_point: напряжение, поток, эффективность), price_per_lumen_rub, price_rub, остатками и ссылкой на даташит;
  • summary — счётчики и признаки полноты данных (data_complete); excluded — до 20 исключённых позиций с причинами;
  • при target_flux — target_flux_range, границы допуска по потоку; hidden_message — текст о скрытых позициях, передайте его человеку.

Как показывать результат пользователю

  • Показывайте таблицу так, как указано в поле table ответа: те же столбцы, что в чате на сайте. Расчётная таблица (led_select): «№», «Маркировка», «Описание», «Условия», «U, В», «Поток, лм», «Эфф., лм/Вт», «Руб/лм», «Цена RUB», «Наличие», «Даташит». Прайс (led_catalog_search): «Маркировка», «Описание», «Datasheet», «Ожидается, шт», «На складе, шт», «Цена CNY», «Цена RUB».
  • Числа берите из ответа как есть, не пересчитывайте и не округляйте по-своему: напряжение, поток и эффективность — два знака, рубли за люмен — пять.
  • Если summary.data_complete равно false, скажите пользователю, что часть позиций не рассчитана из-за неполных данных. В excluded есть и позиции без наличия: это не неполные данные.
  • По умолчанию показаны позиции со склада и в пути; все позиции появляются только при availability.source: "all". Если в ответе есть hidden_message, передайте его человеку как есть: этот текст напечатан для человека.
  • Наличие не обещает возможность заказа: не говорите, что позицию можно заказать, если человек этого отдельно не подтвердил.
  • Цена из каталога — ориентир, а не коммерческое предложение. Не называйте позиции, которых нет в ответе.
  • Не хватает корпуса, цветовой температуры или тока — спросите у пользователя. Нет тока — сначала покажите прайс (led_catalog_search), а для расчёта спросите ток.

Лимиты и ошибки

  • Не больше 30 запросов в минуту с одного IP-адреса (HTTP 429). Claude и ChatGPT обращаются из облака, поэтому предел общий для всех пользователей клиента: подождите минуту и повторите.
  • Одновременно на весь сайт считается не больше 5 подборов. Занято — ответ refused с reason: "busy" и retry_after_ms: повторите тот же запрос через это время.
  • Отказ refused с invalid-input: в issues указано поле; если нет тока или limit больше 10, в hint написано, что сделать дальше.
  • Один подбор длится не дольше 15 секунд; failed с failure_reason: "timeout" — повторите запрос.

Границы

  • Сервер только читает данные: ничего не записывает и не удаляет, собственной языковой модели внутри нет — числа считает код, а не выдумывает AI-модель.
  • Сервис работает в тестовом режиме: данные каталога и даташитов могут быть неполными, возможны ошибки.
  • Это не светотехническое проектирование и не замена измерениям на образце; цена из каталога не является коммерческим предложением.