fetch_reports
Retrieve standup reports from Geekbot by specifying filters such as standup ID, user ID, or date ranges. Returns a JSON-formatted list of reports for easy integration and analysis.
Instructions
Fetch reports list from Geekbot
Args:
standup_id: int, optional, default is None The standup id to fetch reports for
user_id: int, optional, default is None The user id to fetch reports for
after: str, optional, default is None The date to fetch reports after in YYYY-MM-DD format
before: str, optional, default is None The date to fetch reports before in YYYY-MM-DD format
Returns:
str: Properly formatted JSON string of reports list
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| after | No | ||
| before | No | ||
| standup_id | No | ||
| user_id | No |
Input Schema (JSON Schema)
{
"properties": {
"after": {
"default": null,
"title": "After",
"type": "string"
},
"before": {
"default": null,
"title": "Before",
"type": "string"
},
"standup_id": {
"default": null,
"title": "Standup Id",
"type": "integer"
},
"user_id": {
"default": null,
"title": "User Id",
"type": "integer"
}
},
"title": "fetch_reportsArguments",
"type": "object"
}
Implementation Reference
- geekbot_mcp/tools/__init__.py:15-23 (registration)The fetch_reports tool is registered here in the list_tools() function which provides the tool schemas to the MCP server.def list_tools() -> list[types.Tool]: return [ list_members, list_standups, fetch_reports, post_report, list_polls, fetch_poll_results, ]
- geekbot_mcp/tools/__init__.py:36-37 (registration)Handler for the fetch_reports tool is dispatched here in the run_tool() dispatcher function.case "fetch_reports": return await handle_fetch_reports(gb_client, **arguments)
- geekbot_mcp/gb_api.py:34-60 (helper)Core API method to fetch reports from Geekbot API. This is the underlying utility called by the fetch_reports tool handler to retrieve standup reports based on parameters like standup_id, before/after timestamps.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()