링크된 문서
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 - 생성된 그래픽 애니메이션을 비디오로 통합