RunwayML + Luma AI MCP Server

Integrations

  • Used for loading environment variables and API keys.

  • Required runtime environment for the MCP server.

  • Package manager used for installing dependencies and running the server.

RunwayML + Luma AI MCP 서버

이 MCP 서버는 비디오 및 이미지 생성 작업을 위해 RunwayML 및 Luma AI API와 상호 작용할 수 있는 도구를 제공합니다.

특징

  • 텍스트 프롬프트(RunwayML 또는 Luma AI)에서 비디오를 생성합니다.
  • 이미지(RunwayML 또는 Luma AI)에서 비디오를 생성합니다.
  • 텍스트 프롬프트에서 이미지를 생성합니다(Luma AI).
  • Luma AI 세대를 관리합니다(목록, 가져오기, 삭제).
  • Luma AI 세대에 오디오를 추가합니다.
  • 고급 Luma AI 세대.
  • 생성 전에 OpenRouter LLM을 사용하여 프롬프트를 향상시킵니다.

필수 조건

  • Node.js(v18 LTS 이상 권장)
  • npm(일반적으로 Node.js에 포함됨)
  • API 키:
    • RunwayML API 비밀
    • 루마 AI API 키
    • OpenRouter API 키( enhance_prompt 도구용)

설치

  1. 복제 또는 다운로드: 서버 코드를 얻습니다.
  2. 디렉토리로 이동: 서버의 루트 디렉토리( runwayml-mcp-server )에서 터미널을 엽니다.
  3. 종속성 설치:지엑스피1

구성

  1. .env 파일 만들기: 서버의 루트 디렉토리에 .env 라는 이름의 파일을 만듭니다.
  2. API 키 추가: API 키를 .env 파일에 추가합니다.
    RUNWAYML_API_SECRET=your_runwayml_api_secret_here LUMAAI_API_KEY=your_luma_api_key_here OPENROUTER_API_KEY=your_openrouter_api_key_here
    플레이스홀더 값을 실제 키로 바꾸세요.

서버 실행

  1. 서버 빌드: TypeScript 코드를 컴파일합니다.
    npm run build
  2. 서버를 시작합니다:
    npm start
    터미널의 오류 출력(stderr)에서 RunwayML MCP server running on stdio 라는 메시지가 표시되어야 합니다.

MCP 클라이언트 설정(예: Claude Desktop App, Cline)

이 서버에 연결하도록 MCP 클라이언트를 구성하세요. 정확한 단계는 클라이언트에 따라 다르지만 일반적으로 다음을 제공해야 합니다.

  • 이름: 설명적 이름(예: runway-luma-server )
  • 명령어: node
  • 인수: 컴파일된 서버 인덱스 파일의 전체 경로(예: /path/to/your/runwayml-mcp-server/build/server-index.js )
  • 환경 변수:
    • RUNWAYML_API_SECRET : RunwayML API 비밀번호
    • LUMAAI_API_KEY : Luma AI API 키
    • OPENROUTER_API_KEY : OpenRouter API 키

구성 예시(개념적):

{ "mcpServers": { "runway-luma-server": { "command": "node", "args": ["/full/path/to/runwayml-mcp-server/build/server-index.js"], "env": { "RUNWAYML_API_SECRET": "your_runwayml_api_secret_here", "LUMAAI_API_KEY": "your_luma_api_key_here", "OPENROUTER_API_KEY": "your_openrouter_api_key_here" }, "disabled": false, "autoApprove": [] } } }

(시스템의 실제 경로로 /full/path/to/ 를 바꾸는 것을 잊지 마세요)

사용 가능한 도구

  • generate_text_to_video : 텍스트에서 비디오를 생성합니다.
    • provider : (선택 사항) runwayml (기본값) 또는 lumaai .
    • promptText : (필수) 텍스트 프롬프트.
    • runway_model : (선택 사항) 활주로 모델(예: "gen-2").
    • runway_resolution : (선택 사항) 활주로 해상도( 1280:768 또는 768:1280 ).
    • runway_watermark : (선택 사항) 부울, 기본값은 false .
    • luma_model : (선택 사항) Luma 모델( ray-flash-2 , ray-2 (기본값), ray-1-6 ).
    • luma_aspect_ratio : (선택 사항) 루마 종횡비(예: 16:9 (기본값), 1:1 ).
    • luma_loop : (선택 사항) 부울.
    • duration : (선택 사항) 비디오 길이(초)(숫자).
    • seed : (선택 사항) 세대 시드(숫자).
  • generate_image_to_video : 이미지에서 비디오를 생성합니다.
    • provider : (선택 사항) runwayml (기본값) 또는 lumaai .
    • promptImage : (필수) 입력 이미지의 URL 또는 Runway의 경우 배열 [{uri: "url", position: "first" | "last"}] .
    • promptText : (선택 사항) 이미지와 함께 표시되는 텍스트 프롬프트입니다.
    • runway_model : (선택 사항) 활주로 모델( gen3a_turbo (기본값)).
    • runway_duration : (선택 사항) 활주로 지속 시간( 5 (기본값) 또는 10 ).
    • runway_ratio : (선택 사항) 활주로 해상도( 1280:768 또는 768:1280 ).
    • runway_watermark : (선택 사항) 부울, 기본값은 false .
    • luma_model : (선택 사항) Luma 모델( ray-flash-2 , ray-2 (기본값), ray-1-6 ).
    • luma_aspect_ratio : (선택 사항) 루마 종횡비(예: 16:9 (기본값)).
    • luma_loop : (선택 사항) 부울.
    • seed : (선택 사항) 세대 시드(숫자).
  • enhance_prompt : OpenRouter를 사용하여 프롬프트를 개선합니다.
    • original_prompt : (필수) 향상시킬 프롬프트입니다.
    • model : (선택 사항) OpenRouter 모델 이름(기본값은 anthropic/claude-3.5-sonnet 과 같은 유능한 모델).
    • instructions : (선택 사항) 향상을 위한 구체적인 지침입니다.
  • luma_generate_image : Luma AI를 사용하여 이미지를 생성합니다.
    • prompt : (필수) 텍스트 프롬프트.
    • aspect_ratio : (선택 사항) 루마 종횡비( 16:9 (기본값)).
    • model : (선택 사항) 루마 이미지 모델( photon-1 (기본값), photon-flash-1 ).
    • image_ref : (선택 사항) 이미지 참조 객체 배열( {url: string, weight?: number} ). 최대 4개.
    • style_ref : (선택 사항) 스타일 참조 객체 배열( {url: string, weight?: number} ). 최대 1개.
    • character_ref : (선택 사항) 문자 참조 객체( { identity0: { images: [url1, ...] } } ).
    • modify_image_ref : (선택 사항) 이미지 참조 객체( {url: string, weight?: number} )를 수정합니다.
  • luma_list_generations : 이전 Luma AI 세대를 나열합니다.
    • limit : (선택 사항) 결과 수(기본값 10).
    • offset : (선택 사항) 페이지 매김을 위한 오프셋(기본값 0).
  • luma_get_generation : 특정 Luma AI 세대에 대한 세부 정보를 가져옵니다.
    • generation_id : (필수) 세대의 UUID.
  • luma_delete_generation : 특정 Luma AI 세대를 삭제합니다.
    • generation_id : (필수) 세대의 UUID.
  • luma_get_camera_motions : Luma AI 프롬프트에 지원되는 카메라 모션을 나열합니다. (매개변수 없음)
  • luma_add_audio : 루마 생성에 오디오를 추가합니다.
    • generation_id : (필수) 세대의 UUID.
    • prompt : (필수) 오디오에 대한 프롬프트입니다.
    • negative_prompt : (선택 사항) 오디오에 대한 부정적 프롬프트입니다.
  • luma_upscale : 루마 생성을 업스케일합니다.
    • generation_id : (필수) 세대의 UUID.
    • resolution : (선택 사항) 대상 해상도( 1080p (기본값) 또는 4k ).

(참고: 생성( generate_* , luma_upscale )과 관련된 도구의 경우, 서버가 작업을 시작하고 즉시 반환합니다. 진행 상황 업데이트와 최종 결과 URL은 MCP 진행 상황 알림을 통해 전송됩니다.)

예제 워크플로

일반적인 사용 사례에 맞게 서버 도구를 결합하는 방법의 예는 다음과 같습니다.

1. 뮤직 비디오 스니펫(사이버펑크 누아르)

목표: "크롬 도시를 흐르는 네온 강"이라는 가사로 5초 분량의 사이버펑크 누아르 영상 클립을 만듭니다.

단계:

  1. 기본 이미지(루마) 생성:
    { "tool_name": "luma_generate_image", "arguments": { "prompt": "Overhead shot of a dark, rainy cyberpunk city street at night. Bright neon signs reflect on wet pavement, resembling rivers of light flowing between towering chrome skyscrapers. Film noir aesthetic, photorealistic.", "aspect_ratio": "16:9" } }
    (이미지 생성이 완료될 때까지 기다렸다가 이미지 URL을 받으세요)
  2. 애니메이션 이미지(루마):
    { "tool_name": "generate_image_to_video", "arguments": { "provider": "lumaai", "promptImage": "{IMAGE_URL_FROM_STEP_1}", "promptText": "Slow pan left across the rainy cyberpunk cityscape, neon lights flickering subtly.", "luma_aspect_ratio": "16:9", "duration": 5 } }
    (비디오 생성이 완료될 때까지 기다리세요)

2. 제품 광고 컨셉 (플로팅 이어버드)

목표: 미니멀한 환경에 떠 있는 미래형 이어버드를 보여주는 5초 분량의 영상을 만듭니다.

단계:

  1. 제품 참조를 사용하여 장면 생성(Luma):
    { "tool_name": "luma_generate_image", "arguments": { "prompt": "A single, sleek futuristic wireless earbud floats weightlessly in the center of a bright, minimalist white room with soft, diffused ambient light. Zero gravity effect.", "aspect_ratio": "1:1", "image_ref": [{ "url": "{PRODUCT_IMAGE_URL}", "weight": 0.8 }] } }
    (이미지 생성이 완료될 때까지 기다렸다가 이미지 URL을 받으세요)
  2. 애니메이션 장면(루마):
    { "tool_name": "generate_image_to_video", "arguments": { "provider": "lumaai", "promptImage": "{IMAGE_URL_FROM_STEP_1}", "promptText": "The earbud slowly rotates and drifts gently in zero gravity.", "luma_aspect_ratio": "1:1", "duration": 5 } }
    (비디오 생성이 완료될 때까지 기다리세요)

3. 이미지 애니메이션(RunwayML Gen3a)

목표: RunwayML의 Gen3a 모델을 사용하여 기존 이미지에 애니메이션을 적용합니다.

단계:

  1. (선택 사항) 기본 이미지(루마) 생성: 이미지가 없으면 luma_generate_image 사용합니다.
  2. 애니메이션 이미지(RunwayML):
    { "tool_name": "generate_image_to_video", "arguments": { "provider": "runwayml", "promptImage": "{YOUR_IMAGE_URL}", "promptText": "Subtle zoom in, cinematic lighting.", "runway_model": "gen3a_turbo", "runway_duration": "5", "runway_ratio": "1280:768" // Or "768:1280" } }
    (비디오 생성이 완료될 때까지 기다리세요)
-
security - not tested
F
license - not found
-
quality - not tested

텍스트-비디오, 이미지-비디오, 프롬프트 향상 및 생성 관리를 포함하여 비디오 및 이미지 생성을 위한 RunwayML 및 Luma AI API와 상호 작용할 수 있는 도구를 제공합니다.

  1. Features
    1. Prerequisites
      1. Installation
        1. Configuration
          1. Running the Server
            1. MCP Client Setup (e.g., Claude Desktop App, Cline)
              1. Available Tools
                1. Example Workflows
                  1. 1. Music Video Snippet (Cyberpunk Noir)
                  2. 2. Product Ad Concept (Floating Earbud)
                  3. 3. Image Animation (RunwayML Gen3a)
                ID: va06hlza7r