Skip to main content
Glama
selection.py1.84 kB
from pydantic import BaseModel from fastmcp import Context from models import MCPResponse from services.registry import mcp_for_unity_resource from services.tools import get_unity_instance_from_context from transport.unity_transport import send_with_unity_instance from transport.legacy.unity_connection import async_send_command_with_retry class SelectionObjectInfo(BaseModel): """Information about a selected object.""" name: str | None = None type: str | None = None instanceID: int | None = None class SelectionGameObjectInfo(BaseModel): """Information about a selected GameObject.""" name: str | None = None instanceID: int | None = None class SelectionData(BaseModel): """Selection data fields.""" activeObject: str | None = None activeGameObject: str | None = None activeTransform: str | None = None activeInstanceID: int = 0 count: int = 0 objects: list[SelectionObjectInfo] = [] gameObjects: list[SelectionGameObjectInfo] = [] assetGUIDs: list[str] = [] class SelectionResponse(MCPResponse): """Detailed information about the current editor selection.""" data: SelectionData = SelectionData() @mcp_for_unity_resource( uri="unity://editor/selection", name="editor_selection", description="Detailed information about currently selected objects in the editor, including GameObjects, assets, and their properties." ) async def get_selection(ctx: Context) -> SelectionResponse | MCPResponse: """Get detailed editor selection information.""" unity_instance = get_unity_instance_from_context(ctx) response = await send_with_unity_instance( async_send_command_with_retry, unity_instance, "get_selection", {} ) return SelectionResponse(**response) if isinstance(response, dict) else response

Latest Blog Posts

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/CoplayDev/unity-mcp'

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