Skip to main content
Glama

FastAPI MCP Server

by arrehman3
utils.py1.11 kB
from __future__ import annotations import time __all__ = ["Deadline"] class Deadline: """ Manage timeouts across multiple steps. Args: timeout: Time available in seconds or :obj:`None` if there is no limit. """ def __init__(self, timeout: float | None) -> None: self.deadline: float | None if timeout is None: self.deadline = None else: self.deadline = time.monotonic() + timeout def timeout(self, *, raise_if_elapsed: bool = True) -> float | None: """ Calculate a timeout from a deadline. Args: raise_if_elapsed: Whether to raise :exc:`TimeoutError` if the deadline lapsed. Raises: TimeoutError: If the deadline lapsed. Returns: Time left in seconds or :obj:`None` if there is no limit. """ if self.deadline is None: return None timeout = self.deadline - time.monotonic() if raise_if_elapsed and timeout <= 0: raise TimeoutError("timed out") return timeout

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/arrehman3/MCP'

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