Skip to main content
Glama
UnityMcpPlugin.cs2.74 kB
/* ┌──────────────────────────────────────────────────────────────────┐ │ Author: Ivan Murzak (https://github.com/IvanMurzak) │ │ Repository: GitHub (https://github.com/IvanMurzak/Unity-MCP) │ │ Copyright (c) 2025 Ivan Murzak │ │ Licensed under the Apache License, Version 2.0. │ │ See the LICENSE file in the project root for more information. │ └──────────────────────────────────────────────────────────────────┘ */ #nullable enable using System; using com.IvanMurzak.ReflectorNet; using com.IvanMurzak.Unity.MCP.Utils; using Microsoft.Extensions.Logging; using R3; namespace com.IvanMurzak.Unity.MCP { public partial class UnityMcpPlugin : IDisposable { public const string Version = "0.25.0"; protected readonly CompositeDisposable _disposables = new(); public McpPlugin.IToolManager? Tools => McpPluginInstance?.McpManager.ToolManager; public McpPlugin.IPromptManager? Prompts => McpPluginInstance?.McpManager.PromptManager; public McpPlugin.IResourceManager? Resources => McpPluginInstance?.McpManager.ResourceManager; protected UnityMcpPlugin(UnityConnectionConfig? config = null) { if (config == null) { config = GetOrCreateConfig(out var wasCreated); unityConnectionConfig = config ?? throw new InvalidOperationException($"{nameof(UnityConnectionConfig)} is null"); if (wasCreated) Save(); } else { unityConnectionConfig = config ?? throw new InvalidOperationException($"{nameof(UnityConnectionConfig)} is null"); } } public void Validate() { var changed = false; var data = unityConnectionConfig ??= new UnityConnectionConfig(); if (string.IsNullOrEmpty(data.Host)) { data.Host = UnityConnectionConfig.DefaultHost; changed = true; } // Data was changed during validation, need to notify subscribers if (changed) NotifyChanged(data); } public void Dispose() { _disposables.Dispose(); lock (buildMutex) { mcpPluginInstance?.Dispose(); mcpPluginInstance = null; } } } }

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/IvanMurzak/Unity-MCP'

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