Skip to main content
Glama
McpClientRegistry.cs1.82 kB
using System; using System.Collections.Generic; using System.Linq; using UnityEditor; using UnityEngine; namespace MCPForUnity.Editor.Clients { /// <summary> /// Central registry that auto-discovers configurators via TypeCache. /// </summary> public static class McpClientRegistry { private static List<IMcpClientConfigurator> cached; public static IReadOnlyList<IMcpClientConfigurator> All { get { if (cached == null) { cached = BuildRegistry(); } return cached; } } private static List<IMcpClientConfigurator> BuildRegistry() { var configurators = new List<IMcpClientConfigurator>(); foreach (var type in TypeCache.GetTypesDerivedFrom<IMcpClientConfigurator>()) { if (type.IsAbstract || !type.IsClass || !type.IsPublic) continue; // Require a public parameterless constructor if (type.GetConstructor(Type.EmptyTypes) == null) continue; try { if (Activator.CreateInstance(type) is IMcpClientConfigurator instance) { configurators.Add(instance); } } catch (Exception ex) { Debug.LogWarning($"UnityMCP: Failed to instantiate configurator {type.Name}: {ex.Message}"); } } // Alphabetical order by display name configurators = configurators.OrderBy(c => c.DisplayName, StringComparer.OrdinalIgnoreCase).ToList(); return configurators; } } }

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