Skip to main content
Glama
base.py1.45 kB
"""Base resource implementation.""" from abc import ABC, abstractmethod from typing import Any import mcp.types as types from pydantic import AnyUrl class BaseResource(ABC): """Base class for MCP resources.""" def __init__(self, uri: str, name: str = "", description: str = "", mime_type: str = "text/plain") -> None: """Initialize the resource. Args: uri: Resource URI name: Resource name description: Resource description mime_type: MIME type of the resource """ self.uri = uri self.name = name or self._extract_name_from_uri(uri) self.description = description self.mime_type = mime_type def _extract_name_from_uri(self, uri: str) -> str: """Extract name from URI. Args: uri: Resource URI Returns: Extracted name """ return uri.split("/")[-1] or "resource" @abstractmethod async def read(self) -> str: """Read the resource content. Returns: Resource content """ pass def to_mcp_resource(self) -> types.Resource: """Convert to MCP Resource type. Returns: MCP Resource instance """ return types.Resource( uri=AnyUrl(self.uri), name=self.name, description=self.description, mimeType=self.mime_type, )

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/namnd00/mcp-server-hero'

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