CodeShadow
77 subscribers
288 photos
48 videos
13 files
151 links
👋 Я Артемий — преподаватель Python и фрилансер.

💻 Показываю, как код и нейросети помогают зарабатывать и упрощать работу.

🚀 Делюсь проектами, опытом и лайфхаками из реальной практики.

✍🏻 Вопросы и идеи: @MifmanRu
Download Telegram
Начинаю серию постов про MCP 🙂
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔222
Пишем свой MCP на Python 💻

В прошлом посте разобрались, что MCP позволяет дать нейросети собственные инструменты.
Теперь попробуем сделать такой инструмент самостоятельно.

Для самого простого варианта нам нужен только установленный Python.

Ставим MCP SDK:
pip install "mcp[cli]"

Создаём файл server.py:

from mcp.server import MCPServer

mcp = MCPServer("Freelance Helper")


@mcp.tool()
def calculate_price(hours: int, rate: int) -> int:
"""Рассчитать стоимость работы."""
return hours * rate


@mcp.tool()
def make_offer(client: str, price: int, days: int) -> str:
"""Создать предложение для клиента."""
return (
f"{client}, стоимость проекта — {price} руб. "
f"Срок выполнения — {days} дней."
)


if __name__ == "__main__":
mcp.run()


И всё. 💃

У нас уже есть MCP-сервер с двумя инструментами.
Первый считает стоимость проекта.
Второй формирует предложение клиенту.
Причём нам не пришлось отдельно описывать формат каждого инструмента.
MCP SDK понимает по Python-аннотациям, что hours, rate, price и days должны быть числами.
Теперь сервер можно подключить, например, к Codex:

codex mcp add freelance-helper -- python C:\mcp\server.py

После этого пишем нейросети:
«Проект займёт 18 часов. Моя ставка 1500 рублей. Посчитай стоимость и подготовь предложение для Андрея со сроком 5 дней».
Нейросеть сможет вызвать:

calculate_price(18, 1500)

Получить
:
27000

А потом использовать результат
:
make_offer("Андрей", 27000, 5)


Конечно, считать стоимость проекта через MCP — немного бессмысленно :)
Но вместо calculate_price может быть что угодно:

🍿 запрос к базе данных;
🍿 получение клиента из CRM;
🍿 создание задачи;
🍿 работа с API;
🍿 генерация документа;
🍿 получение статистики сайта.


Именно поэтому MCP становится интересен не только как игрушка для разработчиков.
В следующем посте посмотрим, как из этого сделать реальный фриланс-кейс
Please open Telegram to view this post
VIEW IN TELEGRAM
122👏1
Что вообще продавать клиенту?

Представим обычный бизнес.

✏️ Есть CRM.

🐹 Есть база клиентов.

😨 Есть внутренняя система задач.

🍿Есть менеджеры, которые каждый день делают примерно одно и то же:

• ищут информацию о клиенте;
• смотрят последние сообщения;
• проверяют активные задачи;
• смотрят оплаты;
• создают новые задачи.

Обычно под это делают отдельную админку, Telegram-бота или ещё один внутренний сервис.

Но можно сделать MCP-сервер поверх уже существующей системы.

Например, дать нейросети такие инструменты:

get_client_info

get_active_tasks

get_last_messages

get_payments

create_task


После этого менеджер пишет:

«Что сейчас происходит с клиентом ООО Ромашка?»


Нейросеть сама вызывает несколько инструментов:

get_client_info()

get_active_tasks()

get_last_messages()

get_payments()


И собирает всё в один понятный ответ.

А потом менеджер пишет:

«Создай задачу связаться с ними завтра. Укажи, что клиент ждёт новую смету».


И нейросеть вызывает:

create_task()


Вот это уже вполне реальный коммерческий кейс.

Причём нам необязательно переписывать существующую систему клиента.

Если у бизнеса уже есть API, схема может выглядеть так:

CRM / Backend клиента
↓
REST API
↓
MCP Server
↓
Codex / Claude / другой AI-клиент


MCP здесь становится небольшим слоем между нейросетью и существующим backend.

И вот такую работу уже вполне можно продавать на фрилансе. 🕺

Не:
«Я подключу вам ChatGPT».


А:
«Я подключу AI к вашей внутренней системе, чтобы он мог получать клиентов, анализировать данные и выполнять рабочие действия».


Начать можно буквально с нескольких инструментов:

get_client
get_orders
get_statistics


А потом добавить:

create_task
update_client
generate_report


И постепенно превратить это в полноценного внутреннего AI-ассистента.

При этом действия, которые реально что-то меняют, лучше отделять от обычного чтения данных.

Посмотреть клиента — одно.

Удалить клиента, отправить сообщение или провести оплату — совсем другое.

Для таких действий уже стоит оставлять подтверждение пользователя.

А в следующем посте будет ещё интереснее.

Потому что даже сам MCP-сервер необязательно полностью писать вручную.
Please open Telegram to view this post
VIEW IN TELEGRAM
👏22🤩11
Пусть Codex или Claude сами напишут MCP

Теперь кейс посерьёзнее.

Допустим, приходит клиент и говорит:

«У нас есть внутренний API. Хотим работать с ним через нейросеть».

В API уже существуют методы:

GET /clients

GET /clients/{id}

GET /tasks

POST /tasks

GET /payments


Раньше мы бы открывали документацию и начинали вручную писать интеграцию.

Сейчас часть этой работы можно отдать Codex или Claude Code.

Создаём папку проекта, открываем её в Codex/Claude и даём примерно такую задачу:

«Создай MCP-сервер на Python с использованием актуального MCP SDK.

Есть API со следующими методами:

GET /clients
GET /clients/{id}
GET /tasks
POST /tasks
GET /payments


Создай отдельный MCP tool для каждого необходимого действия.

URL API и токен бери из переменных окружения.

Добавь обработку ошибок.

Не давай модели прямой доступ к произвольным HTTP-запросам.

Инструменты чтения отдели от инструментов, изменяющих данные.

Добавь requirements и инструкцию запуска».

Дальше агент уже может создать структуру проекта, server.py, работу с API, .env.example и документацию.


После этого просим:

«Проверь код, установи зависимости и протестируй MCP-инструменты».


А когда сервер готов — подключаем его обратно к тому же Codex:

codex mcp add client-api -- python C:\client-mcp\server.py

И получается довольно забавная рекурсия:

нейросеть помогает написать инструменты для нейросети, после чего сама начинает этими инструментами пользоваться.


Для фриланса это очень сильная штука. 🙂

Особенно если у заказчика уже есть API, CRM, база данных или собственный backend.

Вместо разработки огромной AI-системы с нуля можно сделать небольшой MCP-слой и превратить существующую инфраструктуру клиента в набор понятных нейросети инструментов.

Поэтому я бы сейчас смотрел на MCP не как на очередной модный термин.

Это скорее новый способ делать интеграции.

А там, где появляются интеграции между AI и реальным бизнесом, почти всегда появляется работа для разработчика.
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔222
😐
Please open Telegram to view this post
VIEW IN TELEGRAM
🤯2🗿22
Please open Telegram to view this post
VIEW IN TELEGRAM
221
Forwarded from Григорий IT://home (Grigoriy Chepel)
Media is too big
VIEW IN TELEGRAM
🎮 Как мы внедрили геймификацию в работу преподавателей

Геймификация давно вышла за пределы игрового пространства

- В Duolingo тебя мотивируют серии дней, XP и лиги
- В Яндекс Плюсе - задания, баллы и уровни
- В фитнес-приложении Strava - челленджи, прогресс и достижения

По сути, обычные действия превращаются в понятную систему целей, наград и наблюдения за своим прогрессом

Мы решили попробовать похожий подход внутри INNOPROG - только применить его к работе преподавателей и сделали систему внутренних баллов - иннопрожек (IP)

Преподаватель работает как обычно, а система сама смотрит на его показатели - проведённые занятия, сданные отчёты, отправленные записи занятий, взаимодействие с учеником вне занятий в чате и т.д.

На основе этих показателей считается эффективность работы за день и автоматически начисляются IP

То есть это не просто "провёл урок - получил баллы" - у каждого показателя есть свой вес


А дальше самое приятное - накопленные IP можно тратить во внутреннем магазине

Сейчас в качестве награды пока что используются промокоды, однако сама механика позволяет спокойно расширять каталог чем угодно

———

⚙️ Немного про разработку

По итогу нашей работы получился отдельный сервис внутри онлайн-платформы INNOPROG, который:

- собирает данные о работе преподавателей из внутреннего API INNOPROG

- каждый день автоматически формирует статистику

- начисляет внутреннюю валюту

- ведёт полную историю операций

- считает "ранги" преподавателей метрики эффективности

- следит за лимитами промокодов

- позволяет покупать награды за накопленные IP


Причём, механика работы такова, что статистику нельзя просто один раз посчитать и забыть - например, отчёт или запись занятия могут появиться не сразу, а спустя несколько дней

Поэтому система периодически пересчитывает и при необходимости корректирует начисления

Плюс важно было сделать так, чтобы случайный повторный запуск расчётов ничего не ломал и не начислял IP по много раз - это кстати называется идемпотентностью

Идемпотентность - это когда повторный запуск одной и той же операции не приводит к дополнительным изменениям состояния

В нашем случае это значит, что повторный пересчёт не должен второй раз начислить те же IP


Под капотом у всего этого дела:

- фронтенд на React👩‍💻 + TypeScript 👩‍💻
- серверная часть на FastAPI👩‍💻
- БД PostgreSQL👩‍💻
- APScheduler для ежедневных автоматических расчётов 🕓
- Docker для контейнеризации 👩‍💻
- GitHub Actions для автоматического запуска тестов при изменениях в бэкенде⚙️

До окончательного релиза на онлайн-платформе INNOPROG, деплоил бэк сервис через Railway - удобная штука для запуска небольших проектов в облаке

Деплой - процесс развёртывания проекта в облаке, чтобы он постоянно работал онлайн и стал доступен пользователям


К посту как раз прикрепил демонстрацию того, как всё это в итоге выглядит со стороны преподавателя 👆
Ну и заодно хвалюсь своими показателями за неделю, о гордыня-гордыня😁

Я взял на себя разработку бэкенд-части сервиса, но работали мы в команде вместе с Артемием (@MifmanRu) и Вадимом (@VadimKokorev)

Вадим, как фронтендер проекта, сделал удобный и наглядный интерфейс - как раз на видео можете его оценить

Артемий взял на себя руководство разработкой и взаимодействие с INNOPROG по административной и бизнес-части проекта

У Артемия, кстати, тоже есть свой канал - https://t.me/codeshadowcources, можете заглянуть 👀


Мне вообще нравится такой тип задач, когда с нуля строишь систему с достаточно большой внутренней логикой - экономикой, аналитикой, автоматическими расчётами и многим другим

Проект получился интересный, запустили его недавно, сейчас активно тестим и ждём фидбэк от наших пользователей - преподавателей👨‍🏫

#project #backend #python #fastapi #database
Please open Telegram to view this post
VIEW IN TELEGRAM
3⚡2211