Lutra MCP
Lutra
브라우저에서 동작하는 컬러 그레이딩 LUT 제작 도구. 스크린샷, 카메라 RAW 파일 또는 비디오 클립을 불러와 실제 컬러리스트 도구로 그레이딩하고 .cube / .3dl / Unreal / Unity / ReShade / HALD LUT로 내보내세요. 설치도 계정도 필요 없으며, 모든 작업은 WebGL2를 통해 GPU에서 로컬로 실행됩니다. 이미지가 기기를 떠나지 않습니다.
라이브 주소: https://lutra.gamebench.dev
왜 만들었나
컬러 LUT를 만들려면 보통 수 기가바이트의 영상 소프트웨어를 설치해야 합니다. Lutra는 모든 작업이 순수 픽셀 단위 컬러 변환이라는 하나의 아키텍처 원칙을 기반으로 구축된 약 70KB(gzip) 웹 앱으로, 전체 그레이딩이 3D LUT로 정확히 구워집니다. 공간 효과(블룸, 헐레이션, 그레인, 비네트)는 명확히 라벨이 붙은 프리뷰 레이어로만 존재하며 픽셀이 아닌 엔진 레시피로 내보내집니다. LUT에는 담을 수 없기 때문입니다. 그레이딩에서 보이는 것이 곧 LUT가 하는 일입니다.
Related MCP server: mcp-da-vinci
기능
그레이딩
콘택트 시트 그레이딩 — 다양한 조명 조건의 여러 샷을 로드합니다. LUT는 전역적이므로 어디서든 유효해야 하기 때문에 모든 썸네일이 그레이딩을 실시간으로 따라갑니다.
샷별 현상 — 공통 룩을 판단하기 전에 각 소스를 ±4 EV로 정규화합니다. 현상된 원본, 스코프, 컬러 피킹, Auto 매치 모두 동일한 입력을 보며, 오프셋은 설계상 내보내는 LUT에서 제외됩니다.
컬러리스트 도구 세트 — 화이트 밸런스(+ 그레이 스포이드), 노출, 피벗이 있는 대비, 하이라이트/섀도우/화이트/블랙, 리프트/감마/게인/오프셋 휠, 마스터 및 채널별 R/G/B 커브, 8밴드 HSL 믹서(Oklab 색상), 연속 Sat-vs-Sat 및 Luma-vs-Sat 커브, 밝기 키 섀도우/하이라이트 제어가 있는 채도/바이브런스, 스플릿 토닝, 출력 레벨, 마스터 룩 강도 블렌드.
크리에이티브 LUT 레이어 — 이미 보유한
.cube파일을 드롭하고 그 위에 강도 슬라이더로 계속 그레이딩할 수 있습니다. 톤 커브 바로 뒤에 쌓이므로 아래의 모든 것이 룩을 먹이는 대신 다듬는 역할을 하며, 둘 다 하나의 내보낸 LUT로 구워집니다.정직한 필름 응답 — 블룸, 헐레이션, 그레인, 비네트는 UI에 LUT에 포함되지 않음이라고 명시적으로 라벨이 붙은 레이어로 프리뷰됩니다. 이들은 구울 수 없으며(블룸은 주변 픽셀을 읽고, 그레인과 비네트는 프레임 내 위치에 의존), 따라서 썸네일, 비교, 스코프에서 숨겨지고 이를 재현하는 Unreal/Unity/ReShade 설정을 명명한 엔진 레시피로 내보내집니다.
비교 — 전후 비교(Space 키 유지), A/B 와이프, 샷별 썸네일. 전체에 실행 취소/다시 실행 및 키보드 단축키.
입력
카메라 RAW —
.ARW,.CR2,.CR3,.NEF,.DNG,.RAF,.ORF,.RW2및 기타 형식을 WebAssembly로 컴파일된 LibRaw를 통해 지원합니다. 카메라 자체 화이트 밸런스와 컬러 매트릭스가 적용된 후 프레임은 EXR 및 PQ AVIF가 들어가는 바로 그 지점에서 씬 리니어 라이트로 파이프라인에 진입합니다. 따라서 사진과 게임 캡처가 동일하게 그레이딩됩니다. 노출은 이미지별 자동 밝기가 아닌 고정된 문서화된 헤드룸 상수이므로, 야간 샷과 설원이 서로 다른 밝기로 현상되지 않습니다. 1.5MB 디코더는 동적import()뒤에 있어 다른 사용자의 로드에 영향을 주지 않습니다.HDR 및 고비트 심도 — OpenEXR(half/float, NONE/RLE/ZIP), Radiance
.hdr, 10/12비트 AVIF(PQ, HLG, 고비트 SDR)를 제로 의존성 디코더 + WebCodecs로 전체 정밀도 지원합니다. HDR은 PQ 셰이퍼 내보내기가 가정하는 것과 동일한 ACES 핏으로 디스플레이 sRGB로 현상되므로 프리뷰와 엔진 내 결과가 일치합니다. WebCodecsImageDecoder가 없는 브라우저(Safari, Firefox)는 인코딩된 PQ 데이터에서 파생된 사전 현상 SDR 동반 파일을 받아 픽셀이 일치하며, 사용자의 HDR AVIF가 브라우저 톤매핑되어야 할 때 명확한 경고가 표시됩니다.라이브 비디오 그레이딩 — MP4/MOV/WebM 클립이 스틸과 동일한 필름스트립에 위치합니다. 클립을 선택하고 일반 뷰포트에서 재생, 스크러빙 또는 프레임 단계 이동을 하면서 실행 중에 모든 그레이딩 노브를 계속 조정할 수 있습니다. 표시된 프레임은 브라우저/OS 디코더에서 공유 WebGL 그레이드로 직접 공급되며, 해당 코덱/브라우저/기기 조합이 지원하는 경우 하드웨어 디코딩이 사용됩니다. 원본 클립 바이트와 플레이헤드는 브라우저 저장소에 로컬로 유지되어 재시작 후 필름스트립으로 복원되며, 절대 업로드되지 않습니다. 복사본은 청크 단위로 취소 가능하며, 할당량이 먼저 확인되고 각 클립은
LOCAL또는SESSION으로 라벨이 붙어 저장 실패가 파괴적이 아닌 가시적으로 처리됩니다.
매칭 및 QA
Auto 매치 — 참조 이미지를 드롭하면 솔버가 광범위한 노브를 피팅하여 전체 콘택트 시트의 Oklab 통계가 참조와 일치하도록 합니다. 결과는 일반적인 노브 위치입니다. 강도 슬라이더로 블렌드하고, 수동으로 다듬고, 한 단계로 실행 취소할 수 있습니다.
.cube가져오기 — 동일한 솔버가 노브 스택을 모든 3D.cube에 피팅하여(일반적으로 ΔE ≈ 0.1 이내) 불투명한 LUT를 다시 편집 가능한 그레이드로 변환합니다.LUT 랩 — 모든 3D
.cube를 float 데이터로 열고, 선언된 입력 도메인, 출력 이탈 및 접힘/특이 셀을 검사하고, 크기를 조정하고, 0–200%로 블렌드하고, 두 번째 LUT 앞이나 뒤에 합성한 다음 결과를 다운로드, 스택 또는 역피팅할 수 있습니다. 사용자 정의 도메인과 0–1 밖의 값은 조용히 잘리는 대신 왕복을 견뎌냅니다.컬러 잠금 — 그레이딩에서 살아남아야 하는 색상(UI 색상, 팀 레드, 피부 톤)을 고정합니다. 실시간 ΔE 배지가 그레이드가 색상을 이동시킬 때 경고하며, Auto 매치는 이를 제약 조건으로 취급합니다.
에셋 하모나이즈 — 유지할 팔레트와 조정할 에셋을 마스킹합니다. Harmonize는 HSL 믹서만 풀어 에셋이 룩 아래에서 일치하도록 합니다. Export texture fix는 대신 독립형 B→A 변환을 풀어 텍스처에 일괄 적용하기 위한
.cube+ HALD로 다운로드합니다.스코프 — RGB 히스토그램, 패레이드, 웨이브폼, 스킨톤 라인이 있는 벡터스코프, 클리핑 지브라, 정확한 입력→출력 픽셀 프로브, 게임플레이 가독성 확인을 위한 색각 이상 시뮬레이션.
정직한 구운 프리뷰 — float 파이프라인과 실제 양자화된 LUT(16³/32³/65³, 삼선형 또는 사면체) 사이를 전환하여 엔진 내 대신 내보내기 전에 밴딩을 확인합니다.
출력 및 영속성
소스 해상도 스틸 — 활성 샷을 원본 치수의 PNG로 내보냅니다. 샷별 현상과 float 그레이드 또는 현재 선택된 양자화 LUT 프리뷰 중 하나를 포함합니다. 별도의 완전 룩 내보내기는 튜닝된 블룸, 헐레이션, 그레인, 비네트를 픽셀에 렌더링합니다.
내보내기 —
.cube(16/32/65),.3dl, Unreal 256×16 스트립, Unity LDR 1024×32 스트립, ReShadelut.png, HALD CLUT 512×512, 그리고 톤매퍼 전에 씬 레퍼런스 HDR에서 그레이딩하는 엔진을 위한 PQ 셰이퍼.cube. 여러 형식을 하나의 zip으로 묶을 수 있습니다. 엔진별 설정 및 PQ 셰이퍼의 주의사항은 docs/exports.md를 참조하세요.공유 링크 — Share 버튼이 전체 룩을 gzip으로 압축하여 프래그먼트에 넣은 URL을 복사합니다. 서버 없음, 업로드 없음.
세션은 새로고침에도 유지 — 샷과 마스크 낙서는 OPFS에, 그레이드는 localStorage에 유지됩니다. 탭을 닫고 돌아와서 계속 그레이딩하세요.
휴대폰에서도 작동 — 860px 미만에서는 이미지가 상단에 고정되고 컨트롤이 아래로 스크롤되며, 히트 타겟이 커지고 두 손가락 핀치로 뷰포트를 확대/축소할 수 있습니다.
AI 연결
툴바의 버튼 하나. Lutra는 Model Context Protocol을 통해 도구를 노출하므로 Claude, ChatGPT 또는 모든 MCP 클라이언트가 이미 열려 있는 앱을 구동할 수 있습니다. 핵심은 텍스트-투-LUT가 아닙니다. 어시스턴트가 볼 수 있습니다. 샷을 렌더링하고, 스코프를 읽고, 평범한 영어로 명명된 축 하나를 조정하고, 다시 렌더링하고, 잠긴 색상을 확인합니다 — 맹목적인 생성기가 닫을 수 없는 루프입니다. 전역 그레이드 변경은 일반적인 실행 취소 단계로 유지되며, 샷 현상과 필름 응답은 분리되어 있어 실행 취소가 파이프라인 경계를 조용히 넘을 수 없습니다.
두 가지 전송 방식이 있으며 사용자를 위해 선택됩니다. WebMCP(브라우저가 구현하는 경우 — Edge는 기본 제공, Chrome은 149부터 오리진 트라이얼 실행)는 페어링 없이 도구를 브라우저 내 에이전트에 전달합니다. 그 외 모든 곳에서는 아무것도 저장하지 않는 Durable Object를 통해 릴레이되는 커넥터 링크를 받습니다:
클라이언트 | 제공되는 것 |
Claude Code |
|
Codex |
|
Claude 앱 | Settings → Connectors → Add custom connector용 기본 URL |
도구: get_look · list_shots · render_shot(실제 이미지 반환) · get_scopes(원본 또는 그레이드) · nudge · set_look · set_shot_development · get_film_response · set_film_response · suggest_looks · check_locks · undo · get_share_link. 그레이드 스키마에는 휠과 전문가 커브, 그리고 컴팩트한 토/미드 감마/숄더 톤 셰이프가 포함됩니다. shared/mcpTools.ts에 한 번 선언되고 src/mcp/tools.ts에 구현되며, worker/mcp.ts는 프로토콜을 순수 함수로 표현합니다.
보안. API 키도 OAuth도 없습니다. URL의 코드 자체가 자격 증명이므로 비밀번호처럼 취급하고 공개된 곳에 붙여넣은 링크는 New link로 폐기하세요. Lutra 탭이 열려 있는 동안에만 작동합니다. Lutra는 API 키를 보유하지 않으며 모델을 호출하지 않습니다. 지능은 이미 지불하고 있는 구독에 청구되므로 실행 비용이 없고 계정이 필요 없는 이유입니다. localhost 링크는 Anthropic 서버에서 연결하는 Claude 앱에서 도달할 수 없습니다. Claude Code와 Codex는 로컬에서 실행되므로 사용할 수 있습니다.
개발
npm install
npm run dev # http://localhost:5173
npm run build # type-check + production build → dist/
npm test # vitest런타임 의존성 하나(libraw-wasm, 동적 import 및 코드 분할되어 RAW 파일에만 로드됨); 개발 의존성은 Vite + TypeScript뿐입니다.
배포
프로덕션은 Cloudflare Worker에서 정적 에셋으로 제공됩니다 — 서버 코드 없이 dist/만:
npm run deploy # build + wrangler deploy
npm run deploy:dry # validate without deploying사용자 정의 도메인은 wrangler.jsonc의 라우트이므로 DNS는 배포 시 동기화됩니다. 앱은 상대 에셋 경로를 가진 완전 정적이므로 Netlify, GitHub Pages 또는 모든 파일 서버에서도 호스팅됩니다 — 그레이딩, 내보내기 및 위의 모든 기능이 백엔드 없이 작동합니다. 유일한 서버 측 부분은 MCP 페어링 릴레이(worker/)이며, WebMCP는 그것조차 필요로 하지 않습니다.
문서
docs/exports.md — 각 엔진에서 내보낸 LUT 사용법, PQ 셰이퍼가 보장하는 것과 보장하지 않는 것.
docs/architecture.md — 단일
grade()함수 설계, CPU 미러, 솔버, 로드맵 아이디어.docs/professional-parity.md — 경쟁사 기반 기능 격차, 브라우저 실현 가능성 결정, 승인 게이트.
docs/cloud-architecture.md — 로컬 우선 서버 경계와 연간 $100 상한의 fail-closed Cloudflare 예산.
라이선스
독점 — 모든 권리 보유. LICENSE 참조.
앱은 https://lutra.gamebench.dev에서 무료로 사용할 수 있습니다. 소스는 재사용 라이선스가 부여되지 않습니다. 이는 변경될 수 있습니다: 나중에 오픈소스 라이선스로 공개하는 것은 쉽지만, 공개를 취소하는 것은 불가능하므로 그 결정이 신중하게 이루어질 때까지 소스는 비공개로 유지됩니다.
빌드된 배포물은 여전히 LibRaw(LGPL-2.1 또는 CDDL-1.0, libraw-wasm 경유)를 재배포하며, 번들된 샘플은 RawDB의 CC0입니다. 이러한 의무는 소스가 아닌 배포된 앱을 따르므로 이 저장소의 공개 여부와 관계없이 적용됩니다 — 샘플을 추가할 때 번들에 포함해도 안전한 RawDB 라이선스에 대한 내용을 포함한 NOTICE를 참조하세요.
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