Skip to main content
Glama
resource_registry.py1.47 kB
""" Resource registry for auto-discovery of MCP resources. """ from typing import Callable, Any # Global registry to collect decorated resources _resource_registry: list[dict[str, Any]] = [] def mcp_for_unity_resource( uri: str, name: str | None = None, description: str | None = None, **kwargs ) -> Callable: """ Decorator for registering MCP resources in the server's resources directory. Resources are registered in the global resource registry. Args: name: Resource name (defaults to function name) description: Resource description **kwargs: Additional arguments passed to @mcp.resource() Example: @mcp_for_unity_resource("mcpforunity://resource", description="Gets something interesting") async def my_custom_resource(ctx: Context, ...): pass """ def decorator(func: Callable) -> Callable: resource_name = name if name is not None else func.__name__ _resource_registry.append({ 'func': func, 'uri': uri, 'name': resource_name, 'description': description, 'kwargs': kwargs }) return func return decorator def get_registered_resources() -> list[dict[str, Any]]: """Get all registered resources""" return _resource_registry.copy() def clear_resource_registry(): """Clear the resource registry (useful for testing)""" _resource_registry.clear()

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