Skip to main content
Glama

UnrealBlueprintMCP

by BestDev
models.py6.12 kB
""" Pydantic Models for Unreal Blueprint MCP Server MCP 도구에서 사용하는 데이터 모델 정의 """ from typing import Optional, List, Dict, Any from pydantic import BaseModel, Field class BlueprintCreateParams(BaseModel): """블루프린트 생성 요청 파라미터""" blueprint_name: str = Field(..., description="생성할 블루프린트 이름") parent_class: str = Field(default="Actor", description="부모 클래스 (기본값: Actor)") asset_path: str = Field(default="/Game/Blueprints/", description="생성 경로 (기본값: /Game/Blueprints/)") class BlueprintPropertyParams(BaseModel): """블루프린트 속성 설정 요청 파라미터""" blueprint_path: str = Field(..., description="블루프린트 에셋 경로") property_name: str = Field(..., description="설정할 속성 이름") property_value: Any = Field(..., description="속성 값") property_type: Optional[str] = Field(None, description="속성 타입 (자동 감지)") class BlueprintCompileParams(BaseModel): """블루프린트 컴파일 요청 파라미터""" blueprint_path: str = Field(..., description="컴파일할 블루프린트 경로") class BlueprintNodeAddParams(BaseModel): """블루프린트 노드 추가 요청 파라미터""" blueprint_path: str = Field(..., description="대상 블루프린트 경로") node_class: str = Field(..., description="추가할 노드 클래스") position_x: float = Field(default=0.0, description="노드 X 위치") position_y: float = Field(default=0.0, description="노드 Y 위치") node_name: Optional[str] = Field(None, description="노드 이름 (선택사항)") class ConnectionTestParams(BaseModel): """연결 테스트 요청 파라미터""" timeout: float = Field(default=5.0, description="테스트 타임아웃 (초)") class ServerStatusResponse(BaseModel): """서버 상태 응답 모델""" success: bool = Field(..., description="요청 성공 여부") server_version: str = Field(..., description="서버 버전") unreal_connected: bool = Field(..., description="언리얼 엔진 연결 상태") active_connections: int = Field(..., description="활성 연결 수") uptime_seconds: float = Field(..., description="서버 가동 시간 (초)") class BlueprintCreateResponse(BaseModel): """블루프린트 생성 응답 모델""" success: bool = Field(..., description="생성 성공 여부") message: str = Field(..., description="결과 메시지") blueprint_path: Optional[str] = Field(None, description="생성된 블루프린트 경로") unreal_response: Optional[Dict[str, Any]] = Field(None, description="언리얼에서 받은 원본 응답") class BlueprintPropertyResponse(BaseModel): """블루프린트 속성 설정 응답 모델""" success: bool = Field(..., description="설정 성공 여부") message: str = Field(..., description="결과 메시지") property_name: str = Field(..., description="설정된 속성 이름") old_value: Optional[Any] = Field(None, description="이전 값") new_value: Any = Field(..., description="새로 설정된 값") class BlueprintCompileResponse(BaseModel): """블루프린트 컴파일 응답 모델""" success: bool = Field(..., description="컴파일 성공 여부") message: str = Field(..., description="결과 메시지") compile_errors: List[str] = Field(default_factory=list, description="컴파일 에러 목록") compile_warnings: List[str] = Field(default_factory=list, description="컴파일 경고 목록") class BlueprintNodeAddResponse(BaseModel): """블루프린트 노드 추가 응답 모델""" success: bool = Field(..., description="노드 추가 성공 여부") message: str = Field(..., description="결과 메시지") node_id: Optional[str] = Field(None, description="추가된 노드 ID") node_name: Optional[str] = Field(None, description="추가된 노드 이름") class ConnectionTestResponse(BaseModel): """연결 테스트 응답 모델""" success: bool = Field(..., description="테스트 성공 여부") message: str = Field(..., description="테스트 결과 메시지") response_time_ms: float = Field(..., description="응답 시간 (밀리초)") unreal_version: Optional[str] = Field(None, description="언리얼 엔진 버전") class ErrorResponse(BaseModel): """에러 응답 모델""" success: bool = Field(False, description="항상 False") error: str = Field(..., description="에러 메시지") error_code: Optional[str] = Field(None, description="에러 코드") details: Optional[Dict[str, Any]] = Field(None, description="추가 에러 정보") class SupportedClassesResponse(BaseModel): """지원 클래스 목록 응답 모델""" success: bool = Field(..., description="요청 성공 여부") classes: List[str] = Field(..., description="지원되는 클래스 목록") total_count: int = Field(..., description="총 클래스 수") # 내부 사용 모델 (언리얼과 통신용) class UnrealJsonRpcRequest(BaseModel): """언리얼로 보내는 JSON-RPC 2.0 요청 모델""" jsonrpc: str = Field("2.0", description="JSON-RPC 버전") id: str = Field(..., description="요청 ID") method: str = Field(..., description="메서드 이름") params: Dict[str, Any] = Field(..., description="메서드 파라미터") class UnrealJsonRpcResponse(BaseModel): """언리얼에서 받는 JSON-RPC 2.0 응답 모델""" jsonrpc: str = Field("2.0", description="JSON-RPC 버전") id: str = Field(..., description="요청 ID") result: Optional[Dict[str, Any]] = Field(None, description="성공 시 결과") error: Optional[Dict[str, Any]] = Field(None, description="에러 시 에러 정보") class UnrealJsonRpcError(BaseModel): """JSON-RPC 2.0 에러 정보 모델""" code: int = Field(..., description="에러 코드") message: str = Field(..., description="에러 메시지") data: Optional[Any] = Field(None, description="추가 에러 데이터")

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/BestDev/unreal_bp_mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server