Skip to main content
Glama

Geekbot MCP

Official
by geekbot-com
gb_api.py3.44 kB
from datetime import datetime import httpx class GeekbotClient: def __init__(self, api_key: str, version: str = "dev"): self.api_key = api_key self.version = version self.base_url = "https://api.geekbot.com/v1" self.headers = { "Authorization": self.api_key, "Content-Type": "application/json", "User-Agent": f"geekbot-mcp/{self.version}", } self._client = httpx.AsyncClient(headers=self.headers, timeout=40) async def get_standups( self, ) -> list: """Get list of standups""" endpoint = f"{self.base_url}/standups/" response = await self._client.get(endpoint, headers=self.headers) response.raise_for_status() return response.json() async def get_polls(self) -> list: """Get list of polls""" endpoint = f"{self.base_url}/polls/" response = await self._client.get(endpoint, headers=self.headers) response.raise_for_status() return response.json() async def get_reports( self, standup_id: int | None = None, user_id: int | None = None, after: int | None = None, before: int | None = None, question_ids: list | None = None, limit: int = 50, ) -> list: """Get list of reports""" endpoint = f"{self.base_url}/reports/" params = {"limit": limit} if standup_id: params["standup_id"] = standup_id if user_id: params["user_id"] = user_id if after: params["after"] = after if before: params["before"] = before if question_ids: params["question_ids"] = question_ids response = await self._client.get(endpoint, params=params) response.raise_for_status() return response.json() async def post_report( self, standup_id: int, answers: dict[int, dict[str, str]], ) -> dict: """Post a report""" endpoint = f"{self.base_url}/reports/" response = await self._client.post( endpoint, headers=self.headers, json={"standup_id": standup_id, "answers": answers}, ) response.raise_for_status() return response.json() async def get_poll_results( self, poll_id: int, after: str | None = None, before: str | None = None ) -> dict: """Fetch poll results Args: poll_id: int, required, the ID of the poll to fetch results for after: str, optional, the date to fetch results after in YYYY-MM-DD format before: str, optional, the date to fetch results before in YYYY-MM-DD format Returns: dict: Properly formatted JSON string of poll results """ endpoint = f"{self.base_url}/polls/{poll_id}/votes/" if before and after: endpoint = f"{endpoint}?from={after}&to={before}" elif before: after = "1970-01-01" endpoint = f"{endpoint}?from={after}&to={before}" elif after: before = datetime.now().strftime("%Y-%m-%d") endpoint = f"{endpoint}?from={after}&to={before}" response = await self._client.get(endpoint, headers=self.headers) response.raise_for_status() return response.json() def close(self): self._client.close()

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/geekbot-com/geekbot-mcp'

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