Skip to main content
Glama
cache.py1.13 kB
from typing import Dict, List, Any, Optional from dataclasses import dataclass, field import time import json import hashlib @dataclass class AnalysisCacheItem: results: List[Dict[str, Any]] created_at: float = field(default_factory=time.time) class AnalysisCache: def __init__(self, ttl_seconds=3600): self._cache: Dict[str, AnalysisCacheItem] = {} self.ttl = ttl_seconds def get(self, key: str) -> Optional[List[Dict[str, Any]]]: item = self._cache.get(key) if item: if time.time() - item.created_at < self.ttl: return item.results else: del self._cache[key] return None def set(self, key: str, results: List[Dict[str, Any]]): self._cache[key] = AnalysisCacheItem(results=results) # Global cache instance ANALYSIS_CACHE = AnalysisCache() def generate_cache_key(**kwargs) -> str: """Generate a stable cache key from arguments.""" # Sort keys to ensure stability serialized = json.dumps(kwargs, sort_keys=True, default=str) return hashlib.md5(serialized.encode()).hexdigest()

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/StarGazer1995/mcp-stargazing'

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