Skip to main content
Glama
base.py1.26 kB
"""Base tool class for BLS MCP tools.""" from abc import ABC, abstractmethod from typing import Any, Dict from pydantic import BaseModel class BaseTool(ABC): """Base class for MCP tools.""" @property @abstractmethod def name(self) -> str: """Tool name.""" pass @property @abstractmethod def description(self) -> str: """Tool description.""" pass @property @abstractmethod def input_schema(self) -> type[BaseModel]: """Pydantic model for input validation.""" pass @abstractmethod async def execute(self, arguments: Dict[str, Any]) -> Dict[str, Any]: """ Execute the tool with given arguments. Args: arguments: Tool arguments as dictionary Returns: Tool execution result Raises: ValueError: If validation fails """ pass def to_mcp_tool(self) -> Dict[str, Any]: """ Convert tool to MCP tool definition. Returns: MCP tool definition dictionary """ return { "name": self.name, "description": self.description, "inputSchema": self.input_schema.model_json_schema(), }

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/kovashikawa/bls_mcp'

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