Исходник Софт Готовый MCP для вайбкодинга LUA

насильник42

Новичок
Автор темы
3
3
c3fefa78-e720-4c2f-a3fd-fdfc1354e813.png
Moonloader LUA RAG MCP
Полноценный локальный контекст и умный поиск для нейросетей по BlastHack Wiki

Что это такое и почему это лучше аналогов?
Позиционирую этот проект как первый полноценный локальный MCP (Model Context Protocol) сервер для работы с Moonloader Lua. Внутри его базы данных содержатся все функции, примеры кода и умная система поиска, взятые напрямую с вики BlastHack.

Почему это рвёт Context7
Context7 это общий инструмент. Он просто отдает куски документации и примеры того, "как писать код". Для какого-нибудь React это сработает отлично, но для узкой ниши вроде SA:MP и Lua, где сотни своих специфических функций, событий и особенностей работы, общие советы не помогают. Context7 слегка улучшает производительность за счет случайных релевантных кусков кода, но когда нейросети нужно точно знать параметры конкретной функции (например, renderDrawBox), она начинает безбожно галлюцинировать.

Мой MCP решает эту проблему. Я собрал личную RAG-базу на основе ChromaDB. Теперь нейросеть имеет прямой доступ к энциклопедии BlastHack: она знает, что делает каждая функция, какие у неё аргументы и как её применять, что позволяет писать код в разы качественнее.Как работает алгоритм (Под капотом)
алгоритм поиска работает в гибридном режиме, чтобы выдать ИИ максимально точный результат:

  1. Инициализация и кэширование: При запуске загружается база ChromaDB и разбитые чанки (куски текста) из JSONL файлов. Скрипт заранее высчитывает частотность слов (TF) для быстрого текстового поиска.
  2. Векторный (Семантический) поиск: При запросе от агента, MCP обращается к API gemini-embedding-2, превращая запрос ИИ в многомерный вектор (3072 измерения), и находит в ChromaDB куски документации, подходящиепо смыслу, даже если названия функций не совпадают буква в букву.
  3. Лексический поиск (Lexical Fallback): Параллельно работает алгоритм на базе BM25. Если ИИ запрашивает точное название API-функции или заголовок статьи, алгоритм дает этому куску огромный буст (до +10 очков). Это спасает, если векторный поиск вдруг "не понял" специфичный термин SA:MP.
  4. Умное ранжирование (Dedupe & Rank): Результаты обоих поисков объединяются, дубликаты отсеиваются, и формируется итоговая оценка.
  5. Инструменты для нейросети (Tools): Агенту предоставляются несколько функций: гибкий поиск, получение конкретной статьи и главный козырь — инструмент контекста. Он собирает гигантский и чистый контекст со всеми исходниками, ссылками и примерами прямо перед тем, как ИИ начнет писать для вас скрипт.

Шаг 1. Подготовка: Установка Git и Python
Для работы нам понадобятся две программы:
1.Git — для скачивания проекта с GitHub.
2. Python 3.14.4. ВАЖНО: При установке Python обязательно поставьте галочку «ADD TO PATH» внизу окна инсталлятора!

Шаг 2. Клонирование репозитория и установка зависимостей
Откройте командную строку (cmd) в той папке, где хотите разместить скрипт, и по очереди выполните эти команды:
Код:
git clone https://github.com/nasilnik42/mcpmoonloader.git
cd mcpmoonloader
pip install -r requirements.txt

Шаг 3. Получение Gemini API Key (Бесплатно)
Ключ берется вGoogle AI Studio. API Key по факту бесплатен (есть Free Tier), но у многих тут возникают проблемы.
Лайфхак как получить: Нажмите Import Project -> выберите проект-заготовку Gemini Api Key (ID должно начинаться с gen lang). Импортируете, и готово — теперь вы можете создавать free tier ключи!

Шаг 4. Настройка переменной среды (Windows)
В cmd пропишите (подставив свой ключ):
Код:
setx GEMINI_API_KEY "ТВОЙ_GEMINI_API_KEY"
Примечание: если в будущем поменяете ключ, эту команду нужно будет ввести заново с новым ключом.

Подключение к редакторам кода
У вас есть два стула: AntiGravity илиCodex. У них разные форматы конфигов, но суть одна.
(P.S. Ничего не мешает подключить MCP и к другим редакторам, но здесь инструкция именно для этих двух).

Вариант А: Настройка для Codex (config.toml)
Обычно конфиг лежит по пути: C:\Users\ВАШ_ЮЗЕР\.codex\config.toml
Откройте файл и вставьте в свободное место:
Код:
[mcp_servers.moonloader_rag]
enabled = true
command = "python"
args =["C:/путь_до_папки/mcpmoonloader/moonloader_rag_mcp.py"]
cwd = "C:/путь_до_папки/mcpmoonloader"
env_vars = ["GEMINI_API_KEY"]

Вариант Б: Настройка для AntiGravity (mcp_config.json)
Обычно конфиг лежит по пути: C:\Users\ВАШ_ЮЗЕР\.gemini\antigravity\mcp_config.json
Откройте файл и добавьте сервер:
JSON:
{
  "mcpServers": {
    "moonloader_rag": {
      "command": "python",
      "args":[
        "C:/путь_до_папки/mcpmoonloader/moonloader_rag_mcp.py"
      ],
      "cwd": "C:/путь_до_папки/mcpmoonloader",
      "env": {
        "GEMINI_API_KEY": "ТВОЙ_GEMINI_API_KEY"
      }
    }
  }
}
Обратите внимание: Для AntiGravity ключ GEMINI_API_KEY нужно вставлять прямо в JSON (в отличие от Codex, который подтягивает его из системы). Без этого в AntiGravity работать не будет из-за особенностей его архитектуры.
Также настоятельно рекомендую использовать мой файл AGENTS.MD Он содержит правильные системные промпты для агентов, чтобы они пользовались этим MCP активнее, понимали, когда им нужно лезть в базу BlastHack, и правильно формировали запросы, просто закиньте его в папку вашего проекта.

Пользуйтесь на здоровье!
 

MrCreepTon

Неизвестный
Всефорумный модератор
2,377
5,443
Вообще вроде контекст современных нейронок уже понимаеет Moonloader синтаксис без доп. помощи, но скорее всего будет галлюцинировать.
Было бы здорово какой-то пример увидеть (код с mcp и без mcp например. Или может какую-то статистику насколько ложных ответов меньше стало)
 
  • Нравится
Реакции: Carunoqq и quesada