JavaRush /Курсы /Claude Code SELF /Собираем радар на живых данных

Собираем радар на живых данных

Claude Code SELF
7 уровень , 4 лекция
Открыта

1. Сборка радара на живых данных

Лёха только что водил его за руку — показывал на примерах, как mcp-кабель тянет толчки, как ИИ сам лезет на чужой сайт за стилем. Это была работа мастера. А теперь Тёма собирает радар начисто и сам — с Саней, от пустой папки до готовой страницы. На руках у него все нужные данные: бланк с полями DATA_REQUEST, схема DATA_SCHEMA-lite, как поля станут точками, и понимание, что радар будет сам ходить за данными через mcp-кабель. Осталось совсем немного - все собрать.

Сначала Тёма отдаёт Сане саму страницу. Не «сделай радар», а по-человечески, как учил Лёха: нужна тёмная карта мира на весь экран, под ней пусто, точки появляются сверху. Саня выдаёт каркас: чёрный фон, контуры материков, пока без единой точки. Заготовка есть — теперь влить в неё жизнь.

Первым делом — кабель к данным. Тот самый quakes, без ключа. Тёма подключает его одной командой в терминале, как вчера учил Лёха:

claude mcp add --transport http quakes <адрес-MCP-сервера-открытых-данных>
claude mcp list          # quakes → ✓ Connected

Так, кабель на месте. Теперь Тёма диктует Сане задачу — просто словами, но это, считай, оба вчерашних бланка вслух:

— Сань, бери через quakes свежие толчки. Из каждого — mag, coordinates, time. Магнитуда → размер точки, свежесть → яркость, координаты → куда ставить. Если сервис молчит — держи последнюю картину, не гаси экран.

Он узнаёт собственный DATA_REQUEST (что берём) и DATA_SCHEMA-lite (как используем) — только теперь не на бумажке, а вслух, рабочей задачей. Саня берётся за работу.

И почти сразу дергает Тёму коротким запросом:

«Разрешишь доступ к внешнему ресурсу?»

— Вот полюбуйтесь, все приходится делать самому. Ни шагу без меня ступить не можете. Конечно разрешаю. Да делай что хочешь — буркнул Тёма и ткнул «разрешаю». — Работай в общем

Саня дописывает последние строчки, подключается к mcp-кабелю. Тёма открывает сайт.

Карта моргнула.

Секунда.

И на ней вспыхнула точка — не из тестового списка, который он сам же накидал для проверки, а оттуда, снаружи. Магнитуда, место, время.

— Офигеть, — выдохнул Тёма в пустую комнату. — Сработало. Реально сработало.

coordinates поместили точку ровно туда, где тряхнуло. mag раздул её — толчок был сильный. time сделал её яркой — свежак, пара минут как. Он узнавал свои же поля из утреннего бланка, только теперь они жили.

Тёма сидел, как пацан у окна поезда, и не мог оторваться. У берегов Чили тряхнуло пять минут назад — вон она, свежая яркая точка. Где-то в Азии вспыхнул новый толчок. Старые медленно гасли по краям. Это случилось не в его голове и не в коде — на планете, прямо сейчас. А ИИ сам про это узнал — Тёма и пальцем не шевельнул.

Через минуту точки замерли. USGS взял паузу — ничего нового не отдал.

Тёма дёрнулся было: сломалось? Но карта не побелела, не выкинула ошибку, не соврала пустотой. Просто держала последнюю картину и спокойно ждала. Тот самый план Б, что они с Саней заложили из-под палки. Тишина оказалась не поломкой — честным состоянием мира: трясёт-то не каждую секунду.

2. Как забрать данные с чужого сайта

Радар жил — но выглядел серенько. Серый, дефолтный, как набросок. Тёма помнил вчерашний фокус и захотел тот же лоск, только уже на своём, набело.

— Сань, давай сделаем красиво. Подключим парсер сайтов и скопируем стиль со Stripe.

Тут кабель другой — firecrawl, и ему нужен ключ. Тёма уже сходил на firecrawl.dev, забрал свой fc-..., и теперь надо сказать Сане подключить mcp-кабель.

Рука по привычке было дёрнулась скинуть ключ в чат Сане — для верности. И замерла.

— Не-не, — фыркнул Тёма сам на себя. — Ключ — мимо чата и мимо репозитория. День без слитого ключа не обнуляем.

claude mcp add --transport http firecrawl "https://mcp.firecrawl.dev/fc-ТВОЙ_КЛЮЧ/v2/mcp"
claude mcp list          # firecrawl → ✓ Connected

Кабель подключён. Дальше — словами:

— Сань, через firecrawl сходи на stripe.com, сними стиль — цвета, типографику, градиенты — и переделай наш радар в этом духе.

Агент уходит на пару секунд. Серый радар преображается: глубокий фон, чистая типографика, мягкие переходы. Дорого. Похоже на Stripe — но своё, не копия. Тёма медленно выдохнул. Вот теперь это не поделка, а вещь.

Он откинулся на спинку и оглядел собранное. Карта с живыми толчками, которые приходят сами. Дорогой вид, снятый с чужого сайта. И всё это — не он копировал руками, а сделал ИИ через два mcp-кабеля: один принёс данные через готовое окошко, другой слазил на сайт, у которого окошка нет.

Нет той двери, которую нельзя открыть ногой. Зато проект собран. От пустой папки до живого радара — за один присест.

3. Тот же приём на другом сервисе

Под вечер в дверь заглянул Антон — с небольшой просьбой.

— Тём, выручай. Знакомому нужна простенькая страничка. Он немного приторговывает криптой и хочет, чтоб на сайте крупно висел курс биткоина — живой, который сам обновляется. Не биржа, не торговый терминал, упаси боже. Просто блок, где видно: цифра настоящая, а не нарисованная.

Тёма кивает и разворачивается к ноуту. В голове щёлкнуло: да это же тот же радар, только вместо толчков — цена. Тот же приём, другой сервис.

— Сань, — пишет он уже привычно. — Тут биржевой сервис, но всё то же самое. Подключаем mcp-кабель к курсу, тянем текущую цену биткоина, кладём крупной строкой на страницу. Молчит сервис — держим последнюю цену, не обнуляем в ноль.

Биржа вместо USGS — а схема та же: окошко, кабель, ответ, картинка. И тут mcp-кабелю нужен ключ. Рука Тёмы по привычке поползла вставить его прямо в чат — и замерла на полпути.

— А-а-а, — Тёма фыркнул сам на себя. — Почти попался.

Записал ключ в адрес mcp-кабеля, мимо переписки, как учил Лёха. Саня собрал страницу. Там, где у заготовки болталась мёртвая надпись «BTC — 00000», цифра дрогнула и обновилась: реальный курс, обновлено пару секунд назад. Тёма обновил страницу — число сменилось. Ещё раз — снова другое. Живое.

Он скинул ссылку Антону. Через час телефон звякнул банковским уведомлением — небольшая сумма, но приятно. Первые деньги, заработанные с ИИ. Он сам, по сути, ничего и не сделал руками. Да это же машина по печатанию денег!

Тёма повертел телефон, перечитал. За что, по сути? За цифру, которую тянет откуда-то даже не он сам, а ИИ через mcp-кабель. Он хмыкнул и сунул телефон в карман — но что-то внутри уже ощущалось по-другому. Раньше он клепал игрушки для себя. А сейчас впервые сделал штуку, за которую человек заплатил живыми деньгами.

И тут его повело. Первые деньги ещё грели карман, в голове мелькнула пицца за десять тысяч биткоинов, и он сам, на кураже, открыл чат с Артём2036. Раз уж этот тип из будущего такой умный — пусть отрабатывает.

Артём2036
в сети

— Слышь, оракул.

— Раз ты оттуда — дай наводку, как подняться. Во что вложиться, что взлетит? По-братски, мы ж с тобой одно лицо.

Три точки заморгали — дольше обычного, будто канал кряхтел. И прилетело не сообщение, а каша:

███████ не в █████, дундук. ████ через █████ — и ████████████████████ █████, как я. Деньги — это █████████████████, а не ███. Сними руку с █████████ — и █████████████████ ██████████. Я тебе один раз █████████, ты не █████████████.

— Ты, который █████████ ровно на этом и теперь █████ ███ предохранитель.

Тёма пробежал глазами и фыркнул. Сплошные чёрные кляксы — будто кто-то прошёлся маркером по половине строк. Картинки, ребусы — на это у канала всегда хватало, а тут он спросил прямо, по делу, про деньги — и в ответ труха. Странно: про толчки и пиццу Артём2036 болтал свободно, а стоило заикнуться про навар — и текст словно выгрызли изнутри.

— Жмот ты, а не оракул, — буркнул Тёма и хотел уже закрыть чат. Но глаз зацепился за два целых слова, что уцелели в каше: «дундук» — это он сам так любит, и хвостом, отдельно, нетронутое — предохранитель. Чудное слово, к деньгам каким боком? Он пожал плечом. Дурь какая-то. Закрыл чат.

1
Задача
Claude code, 7 уровень, 4 лекция
Недоступна
Runtime flow для сценария place order внутри Claude Code
Runtime flow для сценария place order внутри Claude Code
1
Задача
Claude code, 7 уровень, 4 лекция
Недоступна
Анализ runtime flow: неверный порядок вызовов в OrderService
Анализ runtime flow: неверный порядок вызовов в OrderService
1
Опрос
Discovery незнакомого проекта в Claude Code, 7 уровень, 4 лекция
Недоступен
Discovery незнакомого проекта в Claude Code
Discovery незнакомого проекта в Claude Code
Комментарии
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ