Faneraiy14

nyxilum-mcp

Community Faneraiy14
Updated

MCP-сервер: AI-асистент компілює/запускає NyxilumLang (.nx) код напряму через NyxilumNode

nyxilum-mcp

MCP-сервер, що дозволяє AI-асистенту (Claude, Cursor тощо) напрямукомпілювати/запускати/лінтити/форматувати NyxilumLang (.nx) код черезNyxilumNode — без ручногоdotnet run/copy-paste в термінал.

Навіщо окремий репозиторій, а не частина NyxilumLang

node_modules цього проєкту не мав би потрапляти в dotnet-збірку чиpublish/ NyxilumLang. Живе поруч, як сестринський проєкт.

Встановлення

git clone https://github.com/Faneraiy14/NyxilumMcp.git
cd NyxilumMcp
npm install

Потрібен зібраний NyxilumNode поруч (../NyxilumLang за замовчуванням,dotnet build src/NyxilumLang там) — або задай шлях явно:

# Linux/Mac
export NX_NODE_PATH=/шлях/до/NyxilumLang   # .exe на Windows, .dll — тоді запускається через `dotnet`
# або
export NX_ECOSYSTEM_ROOT=/шлях/до/NyxilumLang
# Windows
$env:NX_NODE_PATH = "C:\шлях\до\NyxilumLang.exe"
# або
$env:NX_ECOSYSTEM_ROOT = "C:\шлях\до\NyxilumLang"

Підключення (Claude Desktop / Claude Code)

{
  "mcpServers": {
    "nyxilum": {
      "command": "node",
      "args": ["/шлях/до/NyxilumMcp/src/server.js"]
    }
  }
}

Інструменти

Інструмент Що робить
nyxilum_run Компілює й виконує код у пісочниці (окремий процес, timeout, ліміт GC-виділень)
nyxilum_lint Стильові попередження (довжина рядка, порожні блоки) — не перевірка синтаксису, завжди exitCode=0
nyxilum_format Форматує код
nyxilum_version Версія знайденого NyxilumNode — заодно health check
nyxilum_docs GUIDE.md цілком або конкретна секція (### -заголовок) за назвою

Безпека виконання (nyxilum_run)

  • Код НІКОЛИ не потрапляє в shell/argv як текст — завжди пишеться увласний тимчасовий файл, шлях до якого передається як звичайнийаргумент процесу (execFile, без shell: true).
  • Процесний timeout (типово 10с, максимум 60с) — єдиний реальнийзахист від while (true) {} без виділень пам'яті: NX_GC_MAX_OBJECTSрахує лише NyxilumLang-виділення (масиви/структури/мапи), а не ітераціїциклу самі по собі.
  • env — allowlist (PATH, SystemRoot, TEMP, DOTNET_ROOT тощо),не весь process.env цього серверного процесу.
  • NX_SANDBOX=1 (фіксовано, не залежить від вхідних аргументівінструмента) — файловий I/O обмежується тимчасовою текою запуску,мережа (httpGet/httpServer/wsConnect тощо) й читання зміннихсередовища (osEnv) повністю заборонені. Потребує NyxilumNode зпідтримкою NX_SANDBOX (див. NyxilumLang README);зі старішим бінарником прапорець просто ігнорується.
  • Вивід (stdout/stderr) обрізається до 32 КБ на потік — цикл, щодрукує мільйони рядків, не заповнить контекст відповіді.
  • Тимчасова тека видаляється в finally завжди, навіть при таймауті.

RunFile в Nx.cs пише Runtime Error:/Parse Error: у stdout(не stderr) і завершується з exitCode=1 — це поведінка самогоNyxilumNode, не цього сервера; кожен інструмент явно зазначає це в описі.

Тести

npm test

14 перевірок: smoke.mjs викликає обробники напряму (успішний запуск,необроблений throw, таймаут нескінченного циклу, gc_max_objects,обрізання великого виводу, стійкість до shell-метасимволів у коді,відсутність витоку тимчасових директорій), transport.mjs — те самечерез РЕАЛЬНИЙ MCP-протокол (StdioClientTransport + Client), нелише прямі виклики функцій.

Ліцензія

MIT — Faneraiy14.

MCP Server · Populars

MCP Server · New

    qcri

    🦡 codebadger

    🦡 codebadger is a containerized Model Context Protocol (MCP) server that gives AI agents and LLMs deep, queryable access to a codebase's structure and data flow through Joern Code Property Graphs (CPGs).

    Community qcri
    boringSQL

    DryRun PostgreSQL MCP

    PostgreSQL schema intelligence MCP server with offline linting, migration safety, query validation for AI coding assistants.

    Community boringSQL
    emerzon

    mtdata

    A MetaTrader 5 research toolkit with 90+ AI tools for forecasting, regime detection, pattern recognition, and live trading.

    Community emerzon
    OpenImageDebugger

    Open Image Debugger: Enabling visualization of in-memory buffers on GDB/LLDB

    An advanced in-memory image visualization plugin for GDB and LLDB on Linux, with experimental support for MacOS and Windows. Previously known as gdb-imagewatch. Also available as an extension for VSCode and forks

    Community OpenImageDebugger
    HQBase

    HQBase

    Your team's email workspace. In your Cloudflare account.

    Community HQBase