MCP 문서 관리

메뉴

JavaFX

JavaFX

JavaFX MCP 서버는 JavaFX 캔버스를 사용한 그래픽 생성 및 조작 기능을 제공합니다. 이 서버를 통해 LLM은 JavaFX의 2D 그래픽 API를 활용하여 다양한 시각적 요소를 그리고, 조작하고, 애니메이션을 적용할 수 있습니다. 다이어그램, 차트, 간단한 게임, 사용자 인터페이스 프로토타입 등 다양한 응용 프로그램을 생성할 수 있습니다.

특징

  • 캔버스 그리기: 다양한 모양, 선, 텍스트 등 기본 그래픽 요소 그리기
  • 이미지 처리: 이미지 로딩, 표시, 변환 및 효과 적용
  • 애니메이션: 그래픽 요소의 애니메이션 및 전환 효과
  • 이벤트 처리: 마우스, 키보드 이벤트 처리 기능
  • UI 컴포넌트: 버튼, 슬라이더 등 기본 UI 요소 생성 및 관리
  • 레이아웃 관리: 요소 배치 및 레이아웃 구성
  • 효과 및 스타일: 그림자, 블러, 색상 조정 등 다양한 시각 효과
  • 이미지 내보내기: 생성된 그래픽을 이미지 파일로 저장

API

도구

기본 그리기 도구

  • create_canvas: 새 그리기 캔버스 생성
  • 입력: 폭, 높이, 배경색
  • 출력: 생성된 캔버스 ID

  • draw_shape: 기본 도형 그리기

  • 입력: 캔버스 ID, 도형 유형(사각형, 원, 다각형 등), 좌표, 크기, 스타일
  • 출력: 그려진 도형 ID

  • draw_line: 선 그리기

  • 입력: 캔버스 ID, 시작점, 끝점, 선 스타일
  • 출력: 그려진 선 ID

  • draw_text: 텍스트 그리기

  • 입력: 캔버스 ID, 텍스트 내용, 위치, 글꼴, 크기, 스타일
  • 출력: 그려진 텍스트 ID

이미지 처리 도구

  • load_image: 이미지 로드
  • 입력: 이미지 파일 경로 또는 URL
  • 출력: 로드된 이미지 ID

  • draw_image: 캔버스에 이미지 그리기

  • 입력: 캔버스 ID, 이미지 ID, 위치, 크기
  • 출력: 그려진 이미지 객체 ID

  • apply_image_effect: 이미지에 효과 적용

  • 입력: 이미지 ID, 효과 유형, 효과 매개변수
  • 출력: 적용된 효과 결과

애니메이션 도구

  • create_animation: 객체 애니메이션 생성
  • 입력: 객체 ID, 속성(위치, 크기, 불투명도 등), 시작값, 끝값, 지속 시간, 타이밍 함수
  • 출력: 생성된 애니메이션 ID

  • play_animation: 애니메이션 실행

  • 입력: 애니메이션 ID, 반복 횟수
  • 출력: 애니메이션 실행 상태

  • stop_animation: 애니메이션 중지

  • 입력: 애니메이션 ID
  • 출력: 중지 상태

UI 요소 도구

  • create_ui_element: UI 요소 생성
  • 입력: 캔버스 ID, 요소 유형(버튼, 슬라이더 등), 위치, 스타일
  • 출력: 생성된 UI 요소 ID

  • set_event_handler: 이벤트 핸들러 설정

  • 입력: 객체 ID, 이벤트 유형, 핸들러 함수
  • 출력: 핸들러 설정 결과

유틸리티 도구

  • clear_canvas: 캔버스 지우기
  • 입력: 캔버스 ID
  • 출력: 지우기 결과

  • export_canvas: 캔버스를 이미지로 내보내기

  • 입력: 캔버스 ID, 파일 형식, 경로
  • 출력: 내보내기 결과 및 파일 정보

사용 방법

설치

# npm을 통한 설치
npm install -g javafx-mcp-server

# 또는 GitHub 저장소에서 직접 설치
git clone https://github.com/author/javafx-mcp-server
cd javafx-mcp-server
npm install

필요 조건

  • Java Development Kit (JDK) 11 이상이 설치되어 있어야 합니다.
  • JavaFX SDK가 설치되어 있어야 합니다.
  • Node.js 14 이상이 설치되어 있어야 합니다.

구성

Claude Desktop에서 이 서버를 사용하려면 다음과 같이 설정할 수 있습니다:

{
  "mcpServers": {
    "javafx": {
      "command": "npx",
      "args": ["-y", "javafx-mcp-server"],
      "env": {
        "JAVAFX_HOME": "/path/to/javafx-sdk",
        "OUTPUT_DIRECTORY": "/path/to/output"
      }
    }
  }
}

사용 예시

// 새 캔버스 생성
const canvas = await create_canvas({
  width: 800,
  height: 600,
  background: "#f0f0f0"
});

// 원 그리기
const circle = await draw_shape({
  canvasId: canvas.id,
  type: "circle",
  x: 400,
  y: 300,
  radius: 50,
  style: {
    fill: "blue",
    stroke: "darkblue",
    strokeWidth: 2
  }
});

// 텍스트 그리기
const text = await draw_text({
  canvasId: canvas.id,
  text: "Hello, JavaFX!",
  x: 350,
  y: 200,
  font: "Arial",
  size: 24,
  style: {
    fill: "black"
  }
});

// 애니메이션 생성
const animation = await create_animation({
  objectId: circle.id,
  property: "radius",
  startValue: 50,
  endValue: 100,
  duration: 2000,
  timingFunction: "ease-in-out"
});

// 애니메이션 실행
await play_animation({
  animationId: animation.id,
  repeat: 3
});

// 캔버스를 이미지로 내보내기
await export_canvas({
  canvasId: canvas.id,
  format: "png",
  path: "/path/to/output/drawing.png"
});

연결된 구성 요소

  • Image Generation - 생성된 이미지를 JavaFX 캔버스에 통합
  • Blender - JavaFX에서 생성된 2D 요소와 3D 모델 연계
  • Excel - 데이터 시각화 및 차트 생성 연동
  • Video Editor - 생성된 그래픽 애니메이션을 비디오로 통합