Как срезать расходы на AI-кодинг: сервер jcodemunch-mcp экономит до 95% токенов при анализе кода

Я — Denis Shokhirev, Enterprise AI architect из Фрайбурга. В DennisCraft AI Studio я строю продакшн AI для B2B-клиентов DACH на стеке Claude, Supabase, n8n, Doppler и self-hosted Postgres. На прошлой неделе заказчик попросил: «Сделай аудит 60k строк Python, но не разорись на токенах». Традиционные подходы с LLM — это прямой путь к бюджету в минус.

Зачем вообще нужен аудит кода через LLM?

В продакшн-проектах LLM уже используют не только для генерации, но и для анализа кода: поиск багов, уязвимостей, миграций. Например, Claude Code и GPT-4 обеспечивают неплохую точность в обнаружении паттернов CWE-79 или ошибок авторизации. Но цена — $20–$40 за миллион токенов (Anthropic API, июнь 2024). Один средний репозиторий может легко «съесть» пару миллионов токенов только на простом анализе.

Где теряются деньги

Многие команды гонят через LLM весь код целиком, надеясь на магию. На деле 80% токенов уходит на boilerplate, тесты, устаревшие модули. Задача — сократить «шум» до минимума, сохранив при этом качество анализа.

Что такое jcodemunch-mcp и почему это работает

jcodemunch-mcp — это маленький сервер, который я использую для «разжевывания» больших репозиториев перед передачей в LLM. Его задача — автоматически выделять только релевантные блоки кода, удалять повторения, генерировать краткое дерево зависимостей и превращать код в компактные chunks для целевого промпта.

Архитектура и стек

  • Ядро: Python 3.11, FastAPI
  • Парсинг кода: tree-sitter, ast
  • Семантический фильтр: semgrep, bandit, gitleaks
  • Интеграция: n8n, Supabase, Claude Code через Anthropic SDK

Здесь нет никакой магии: это слой pre-processing, который готовит код как данные, а не как текст.

Сравнение: сколько реально экономится

Метод Средний размер входа (токены) Стоимость на 60k строк Время препроцессинга Качество аудита
Грубый анализ всего репо 2 400 000 $48–$96 5 мин Много ложных срабатываний
Ручная разбивка + фильтрация 400 000 $8–$16 2 часа Лучше, но человеческий фактор
jcodemunch-mcp препроцессинг 90 000 $1.80–$3.60 12 мин Точное покрытие релевантных зон

Реальная экономия — 95%+ токенов. При этом улучшается качество: в LLM попадает только то, что реально нужно для анализа.

Как работает пайплайн на практике

Запуск препроцессинга


from fastapi import FastAPI, UploadFile
import subprocess

app = FastAPI()

@app.post("/analyze/")
async def analyze_repo(file: UploadFile):
    repo_path = "/tmp/repo"
    with open(repo_path + ".zip", "wb") as f:
        f.write(await file.read())
    subprocess.run(["unzip", repo_path + ".zip", "-d", repo_path])
    # Запуск jcodemunch-mcp препроцессинга
    subprocess.run(["python3", "jcodemunch_mcp.py", repo_path])
    # ...дальше интеграция с n8n и Claude
    return {"status": "ok"}

Фильтрация и компактинг


import semgrep

def filter_code(repo_path):
    findings = semgrep.run("--config", "p/ci", repo_path)
    relevant_files = [f for f in findings if "security" in f["check_id"]]
    return relevant_files

Результат — json с минимальным набором chunks по зонам риска, который дальше отправляется в LLM через n8n workflow.

Проблемы и подводные камни

Ложноположительные фильтры

Если semgrep или bandit неправильно настроены, часть критичного кода может быть пропущена. Здесь важно не полагаться на дефолтные правила, а собирать свою кастомную конфигурацию под проект.

Токенизация и разбивка функций

Claude и GPT-4 плохо работают с обрывками методов — chunking нужно делать аккуратно, по границам функций/классов. Tree-sitter помогает, но требует пост-обработки.

Интеграция с пайплайнами CI/CD

Встраивать jcodemunch-mcp лучше всего через n8n как отдельный step до отправки в LLM. Это снижает нагрузку и исключает лишние запросы.

FAQ

Можно ли использовать только open-source инструменты?

Да, связка tree-sitter + semgrep + FastAPI полностью открыта. Для интеграции с Claude или GPT-4 потребуется ключ от соответствующего API.

Что делать, если проект на нескольких языках?

jcodemunch-mcp поддерживает мульти-языковые репозитории, если настроить парсеры для нужных языков.

Какой объем кода оптимален для одного промпта?

Оптимально — 400–1200 строк на chunk, чтобы не выйти за лимиты LLM и сохранить контекст.

Можно ли запускать препроцессинг локально?

Да, сервер разворачивается в Docker-контейнере, можно запускать на любой машине с Python 3.11.

Стоит ли полностью доверять LLM аудиту?

Нет, LLM — это не панацея. Я всегда комбинирую их вывод с ручной проверкой и статическим анализом (semgrep, bandit).

На каком этапе у вас чаще всего «течет» бюджет при аудите через LLM — на препроцессинге, chunking или самом анализе? Я реально хочу услышать опыт из поля. Я делаю бесплатный 30-минутный аудит пайплайна для команд, которые строят AI в регламентированных рынках DACH. Пишите в LinkedIn или в @ger_dennis_ai.

Read more

Computer-Use-Agenten scheitern an Pixeln: wie Sie auf stabile UI-Referenzen über Accessibility Trees umstellen und fehleranfällige Desktop-Automatisierung nicht mehr ständig reparieren

von Denis Shokhirev, Enterprise AI Architect aus Freiburg im Breisgau Ich bin Denis Shokhirev, Agentic AI Systems Architect in Freiburg im Breisgau, Germany, und bei DennisCraft AI Studio setze ich produktive KI-Systeme für DACH-B2B-Kunden auf Basis von Claude, Supabase, n8n, Doppler und selbst betriebenem Postgres um. Die teuersten Fehler in

By Denis Shokhirev

Компьютерные агенты ломаются на пикселях: как перейти на stable UI refs через accessibility tree и перестать чинить flaky desktop automation

Я Denis Shokhirev, Agentic AI Systems Architect из Freiburg im Breisgau, Germany, и в DennisCraft AI Studio я собираю production AI-системы для DACH B2B на Claude, Supabase, n8n, Doppler и self-hosted Postgres. Самая дорогая поломка в desktop automation, которую я вижу у клиентов, почти никогда не связана с моделью: агент

By Denis Shokhirev