Lutra MCP
Lutra
Создание LUT для цветокоррекции в браузере. Загрузите скриншоты, RAW-файлы с камеры или видеофрагмент, скорректируйте их настоящими инструментами колориста и экспортируйте LUT в форматах .cube / .3dl / Unreal / Unity / ReShade / HALD. Без установки и без аккаунтов — всё работает локально на вашем GPU через WebGL2. Изображения никогда не покидают вашу машину.
Доступно по адресу https://lutra.gamebench.dev
Зачем
Создание цветокорректирующего LUT обычно требует установки гигабайтов видеопрограмм. Lutra — это веб-приложение размером ~70 КБ (в gzip), построенное вокруг единственного архитектурного правила: любая операция — это чистое попиксельное преобразование цвета, поэтому весь грейд ложится в 3D LUT точно. Пространственные эффекты (блюм, ореол, зерно, виньетка) существуют только как явно подписанный слой предпросмотра и экспортируются как рецепт движка, а не как пиксели, потому что в LUT им места нет — что вы видите в грейде, то и делает LUT.
Related MCP server: mcp-da-vinci
Возможности
Грейдинг
Грейдинг по контактному листу — загружайте много кадров в разных условиях освещения; каждая миниатюра живёт по грейду в реальном времени, потому что LUT глобальный и должен работать везде.
Индивидуальная проявка кадра — нормализуйте каждый источник в пределах ±4 EV, прежде чем оценивать общий образ. Проявленные исходники, осциллографы, выборочный цвет и Auto match работают с одним и тем же входом; сдвиг проявки по построению не попадает в экспортируемый LUT.
Набор инструментов колориста — баланс белого (+ серая пипетка), экспозиция, контраст с pivot, света/тени/белые/чёрные, колёса lift/gamma/gain/offset, мастер-кривые и поканальные кривые R/G/B, 8-полосный HSL-микшер (оттенки Oklab), плавные кривые Sat-vs-Sat и Luma-vs-Sat, насыщенность/сочность с управлением теней и светов по светлоте, сплит-тонирование, выходные уровни и общий регулятор силы лук-эффекта.
Слой креативных LUT — добавьте свой уже готовый
.cubeи продолжайте грешить поверх него регулятором силы слоя. Применяется сразу после тональных кривых; поэтому всё, что ниже, уточняет стиль, а не подпитывает его, — и в один экспортируемый LUT запекается итог.Честный отклик плёнки — bloom, жирность, зерно и виньетка появляются на отдельном слое, который в интерфейсе честно подписан not in the LUT (и словами). Эти эффекты не могут быть запечены (блюд читает соседние пиксели; зерно и виньетка зависят от позиции в кадре), поэтому их нет в миниатюрах, сравнениях и осциллографах, и экспортируются они как engine-рецепт с настройками Unreal/Unity/ReShade для повторения.
Сравнение — до/после (удерживайте Space), шторка A/B, миниатюры по кадрам. Undo/redo и горячие клавиши работают везде.
Входной материал
Camera RAW —
.ARW,.CR2,.CR3,.NEF,.DNG,.RAF,.ORF,.RW2и другие через LibRaw, скомпилированный в WebAssembly. Сначала применяются собственный баланс белого и цветовая матрица камеры, затем кадр поступает в конвейер как scene-linear light — в той самой точке, где это делают EXR и PQ AVIF. Так что фото и игровой захват обрабатываются одинаково. Экспозиция — это фиксированная, документированная константа запаса, а не автоматическая подстройка яркости под кадр, поэтому ночь и снежное поле не developing в разную яркость. Декодер 1,5 МБ спрятан под динамическийimport()и никак не нагружает загрузку остальных пользователей.HDR и большая глубина цвета — OpenEXR (half/float, NONE/RLE/ZIP), Radiance
.hdrи 10/12-битный AVIF (PQ, HLG, высокобитовый SDR) с полной точностью через декодеры без зависимостей + WebCodecs. HDR развивается до display-sRGB с тем же охватом, который предполагает экспортный PQ-шейпер, так что превью и результат в движке совпадают. Brows without WebCodecsImageDecoder(Safari, Firefox) get pre-developed HDR from the encoded PQ data, so positive matches — and a clear warning when browser hasn't like AVIF and the browser must do tone mapping.
Живая цветокоррекция экспози — клипы MP4/MOV/WebM живут в той же плёночном ряду, что и кадры. Made it long, play, mounce by frames in the usual viewport and continue operating as retain years instant. Displayed frames feed over so shared WebGL grade directly from the operating system or on GPU/OS decoder; hardware decode is used in codec/browser/device matches. Clip file bytes and playing head survive restart on your computer/browser, and restore in the strip; they are never uploaded. At copy stages of file are chunked and can be cancelled; quota is checked in advance, and each clip is marked with the
LOCALorSESSIONlabel so the record-access isn't counted as tc.
Сопоставление и приёмка
Auto match — drop the verification image, and the solver will try basic adjustments to match Oklab statistics of the entire contact sheet. The output is
нф:The output is normalized knob positions: mix with a force slider, make it smoother by immersing, undo in one step.
cubeimport — one solver fits the knob system to any 3D.cubeLUT (usually ΔE within 0.1), turning an opaque LUT back into tunable grades.LUT Lab — open a 3D
.cubeLUT as dark, investigate the photon direction and range of values at entry, exit and the "fragment"/"porous" cells; change dimensions; cut off from 0–100%; connect to input or output with the second LUT; remove you to download, stack or Convert. Non-standard domains/vads beyond 0–1 survive, and don't collapse.Зафиксированные цвета — pin those colors that must survive the session (color attire, red, skin). Live ΔE badges show when the adjustment has changed them; and Auto match = count as constraints.
Гармонизmd assets — Gradually choose palette you want to preserve, and the asset to change. Harmonize works only with HSL mixer, so the asset in your style is preserved. Export texture fix instead finds the direct color transform as LUT and saves it as
.cube+ HOL for batch textures.Осциллографскоп — RGB row, parade, waveform, vectorscope with skin-tone line, "zebra" mon clip, exact pixel "in=out" waveform, and the track-of-colors-visuality inspector is itself exactly feeding the scope; plus semantics of vision mod: "without color defect" — preview for gameplay.
Честный предпросмотр интегральный предпросмотр — switch between floating pipeline and actual taper status of an LUT (16³/32³/65³, trilinear or tetrahedron), so not every ladder is scary prior to export, not in engine.
Export and Save
Export of source resolution — export the desired frame at full resolution in PNG, the frame shows individual files and is * the current tone * or *graded in the selected paper *and is exported without image. You can generate the cover design of the shot separately, checking blurred, bloom, the audio and the vignette inserted directly in the pixel. *... [[See above]] Export formats —
.cube(16/32/65),.3dl, Unreal 256×16LUT sheet, Unity LDR 1024×32 sheet, ReShadelut.png, HALD CLUT 512×512, as well as PQ atomic.cubefor the engine ** which grades in the scene-significant HDR before tone mapping. Most final formats can be bundled into onezip. You configure for each engine and even PEG shape read the jovial doctor specialty docs/exports.md.Share link — special shell,
Sharebutton copies a URL with an exact link compressed into the fragment. No server, no download.Sessions survive the reload — frames and mask outlines persist to OPFS, a large number of results in localStorage. ** An additional unused tab, go to the project and write in without loss.
Works on your phone — on a width below 860px, the video is pinned to the top, the controls scroll below; the touch elements are arranged to the form and two fingers may**mpf navigate viewport.
AI connection
One extra in the toolbar. LUT uses Model Context Protocol for transmission, and Claude, ChatGPT or an MCP-client can interact with **MCP in your project. Claude, ChatGPT or any MCP Client will be screen. The point is not the LUT with text: the assistant can see. It can take a frame, read scopes, in English call it "turn the light" their perspect nudge, then update the frame again, check as on your color — the loop which no "blind" generator can make. To remember global overrides remain ordinary undo steps; the dashboard and film response are always preserved as a single separate subsystems "that cannot be undone".
Two data transports, chosen for you. WebMCP (in cases when the browser already provides (in, e.g., Edge, Chrome, Chrome with Origin Trial starting with 149) falls into an in-browser agent directly without pairing. Everywhere else you get via connector URL passes through the durable and stores nothing:
| Client | What you get |
| Client | What you get |
| ----------- | ----------------------------------------------- | Suppose |
| Claude Code | claude mcp add --transport http lutra <url> for work in terminal. |
| Codex | [mcp_servers.lutra] section ~/.codex/config.toml |
| Claude app | plain URL, for "Settings → Connectors → Add custom connector." |
Tools: get_look, list_shots , render_shot (the real picture), get_scopes (original or processed), nudge, set_look, set_shot_development, get_film_response, set_film_response, suggest_look, check_lock, undo, get_share_link. The grade data includes color mixer and professional curves, parameterized in lightness/mid /gamma/shoulder shape. These descriptions are declared once in shared/mcpTools.ts, described in src/mcp/tools.ts; worker/mcp.ts is the protocol as a pure function.
Security. There is no API encryption and there is no OAuthToken — the code in your URL IS an identifier, so treat the URL as paкъзде like a don't post it somewhere public publicly. It works via Fresh New link to revoke. Also, browser link is active while the Lutra window is open. Lutra itself has no API key and does not accept models: smart calls run your own paid subscription, so it goes do not charge estimates and you do not need an account. A special **localhost link is not available from Claude app (it connects to Anremote’s server); Claude Code by Code runs via their token, for each of the two repositories.
Develop
npm install
npm run dev # http://localhost:5173
npm run build # type-check + production build → dist/
npm test # vitestPossibilities: One runtime department (libraw-wasm, dynamically imported and handled was split to a RAW; devyn depends only Vite + TypeScript).
Move.
Web-server AS user via receive static files with Server Worker — No server code, just static directory:
npm run deploy # build + wrangler deploy
npm run deploy:dry # validate without deployingCustom domain route is in wrangler.jsonc, so on relase the DNS stays and is completely static with relative paths, so it is hosted on Netlify. GitHub pages and any simple hosting or the server using file server — no grading, exporting, and all no backend. The only server-side piece is the MCP pair in worker's (worker/) of the project, and the "WebCP does not need them."
Documentation
docs/exports.md — how to use the layout in each engine and what is not guaranteed by the PQ shaper.
docs/architecture.md — the architecture with a single
grade()method, the mirror model on the CPU, the method of .solvers and the ideas section.docs/professional-parity.md — a missing feature table with competition, why browser-safe interface, plus approval criteria.
docs/cloud-architecture.md — the privacy-prioritized server restriction and the total budget of 100 per year.
License
Proprietary — all rights reserved. Terms: `LICENSE.
Ваше input are available under the site https://lutra.gamebench.dev; the source code is private linked and cannot be reused. It may also be used*: release the code under an open-source license later easy, but to recall it — impossible, why the code is closed until conscious toward the dark truth.
Built with processing package also includes LibRaw (LGPL-2.1 or CDDL - 1.0 via distributed via libraw-wasm), and the packaged Photo sets from Licenses.
[[lWait](to use.]]
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseBqualityBmaintenanceBridges AI assistants to Autodesk RV for managing media review sessions through natural language commands. Users can control playback, compare shots, and adjust color grading without needing any external plugins.47MIT
- AlicenseNot gradedqualityCmaintenanceExposes the DaVinci Resolve scripting API to LLMs, enabling inspection, media import, timeline editing, markers, and render queue management through natural language.MIT
- AlicenseBqualityDmaintenanceEnables AI-driven DaVinci Resolve 21 automation with 88 tools for project management, timeline editing, color grading, AI analysis, rendering, and dailies creation.882MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server that exposes the complete DaVinci Resolve scripting API, enabling AI assistants to control DaVinci Resolve programmatically with over 440 tools for project management, timeline editing, color grading, rendering, and more.5MIT
Related MCP Connectors
Create and manage cinematic AI video renders through the Future Video Studio Agent API.
Manage AI filmmaking projects, scenes, assets, and generations in Martini.
Build and run visual creative-production workflows from your AI agent.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/withaspoon/nyans'
If you have feedback or need assistance with the MCP directory API, please join our Discord server