Skip to main content
Glama
framework.py874 B
from __future__ import annotations from typing import Dict, Any, Callable class BaseUnifiedTool: name: str = "base" def run(self, context: Dict[str, Any]) -> Dict[str, Any]: # pragma: no cover (override) return context class ToolRegistry: def __init__(self) -> None: self._tools: Dict[str, BaseUnifiedTool] = {} def register(self, tool: BaseUnifiedTool) -> None: self._tools[tool.name] = tool def get(self, name: str) -> BaseUnifiedTool: if name not in self._tools: raise KeyError(f"Tool not found: {name}") return self._tools[name] class ToolManager: def __init__(self, registry: ToolRegistry) -> None: self.registry = registry def invoke(self, name: str, context: Dict[str, Any]) -> Dict[str, Any]: tool = self.registry.get(name) return tool.run(context)

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/Zazzles2908/EX_AI-mcp-server'

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