UNPKG

@akiojin/unity-editor-mcp

Version:

MCP server for Unity Editor integration - enables AI assistants to control Unity Editor

87 lines (82 loc) 2.59 kB
/** * Tool definition for get_object_references */ export const getObjectReferencesToolDefinition = { name: 'get_object_references', description: 'Find references to and from a GameObject (hierarchy/assets/prefabs).', inputSchema: { type: 'object', properties: { gameObjectName: { type: 'string', description: 'Name of the GameObject to analyze references for' }, includeAssetReferences: { type: 'boolean', description: 'Include references to assets (materials, meshes, etc). Default: true' }, includeHierarchyReferences: { type: 'boolean', description: 'Include parent/child hierarchy references. Default: true' }, searchInPrefabs: { type: 'boolean', description: 'Also search for references in prefab assets. Default: false' } }, required: ['gameObjectName'] } }; /** * Handler for get_object_references tool */ export async function getObjectReferencesHandler(unityConnection, args) { try { // Check connection if (!unityConnection.isConnected()) { return { content: [ { type: 'text', text: 'Failed to get object references: Unity connection not available' } ], isError: true }; } // Send command to Unity const result = await unityConnection.sendCommand('get_object_references', args); // Handle Unity response if (result.status === 'error') { return { content: [ { type: 'text', text: `Failed to get object references: ${result.error}` } ], isError: true }; } // Success response return { content: [ { type: 'text', text: result.result.summary || `References analyzed for ${args.gameObjectName}` } ], isError: false }; } catch (error) { return { content: [ { type: 'text', text: `Failed to get object references: ${error.message}` } ], isError: true }; } }