geekbot mcp

Local 2025-08-31 23:45:53 0

A server that bridges Anthropic's Claude AI with Geekbot's standup management tools, allowing users to access and utilize Geekbot data within Claude conversations.


Geekbot MCP Logo Python 3.10+ License: MIT

Geekbot MCP server acts as a bridge between Anthropic's Claude AI and Geekbot's powerful standup, polls and survey management tools. Provides access to your Geekbot data and a set of tools to seamlessly use them in your Claude AI conversations.

Features

  • Standup Information: Fetch all your standups in Geekbot
  • Report Retrieval: Get standup reports with filtering options
  • Members Information: Fetch all your team members in Geekbot

Installation

Download the uv package manager

curl -LsSf https://astral.sh/uv/install.sh | sh

Further instructions can be found here

git clone https://github.com/geekbot-com/geekbot-mcp.git
cd geekbot-mcp
uv tool install --editable .

Configuration

Before using Geekbot MCP, you need to set up your Geekbot API key:

You can obtain your Geekbot API key from here.

Configure the mcp server in your claude_desktop_config.json

{
  "globalShortcut": "",
  "mcpServers": {
    "geekbot-mcp": {
      "command": "<path-to-your-uv-executable>",
      "args": [
        "tool",
        "run",
        "geekbot-mcp"
      ],
      "env": {
        "GB_API_KEY": "<your-geekbot-api-key>"
      }
    }
  }
}

To find the path to your uv executable, you can run which uv in your terminal. You can find more information about the configuration here

Available Tools

list_standups

Retrieves a list of all standups from your Geekbot workspace.

The response is in a plain text format.

<Standups>
***Standup: 1 - Infrastructure Changelog***
id: 1
name: Infrastructure Changelog
channel: team-infrastructure
time: 10:00:00
timezone: user_local
questions:

- text: What changed in the infrastructure today?
  answer_type: text
  is_random: false



***Standup: 2 - Meeting Agenda (TOC Beta)***
id: 2
name: Meeting Agenda (TOC Beta)
channel: meeting-notes
time: 10:00:00
timezone: user_local
questions:

- text: What should we discuss in this meeting?
  answer_type: text
  is_random: false

</Standups>

fetch_reports

Fetches standup reports with support for filtering by:

  • standup_id
  • user_id
  • after
  • before

The response is in a plain text format.

<Reports>
***Report: 1 - 1***
id: 208367845
reporter_name: John Doe | @john_doe
reporter_id: U1234
standup_id: 1
created_at: 2025-03-27 13:52:59
content:
q: What have you done since your last report?
a: • Plan work for the next week
   • Worked on the new feature

q: What will you do today?
a: • Plan work for the next week
   • Worked on the new feature

q: How do you feel today?
a: I am fine.

list_members

Retrieves a list of all members from your Geekbot workspace.

Development

Setup Development Environment

git clone https://github.com/geekbot-com/geekbot-mcp.git
cd geekbot-mcp

uv venv
source .venv/bin/activate

uv pip install -e

Running Tests

pytest

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

This project is licensed under the MIT License

Acknowledgements

[
  {
    "description": "Fetch standups list from Geekbot      Returns:         str: Properly formatted JSON string of standups list     ",
    "inputSchema": {
      "properties": {},
      "title": "fetch_standupsArguments",
      "type": "object"
    },
    "name": "fetch_standups"
  },
  {
    "description": "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     ",
    "inputSchema": {
      "properties": {
        "after": {
          "default": {
            "path": "README.md",
            "type": "blob"
          },
          "title": "After",
          "type": "string"
        },
        "before": {
          "default": {
            "path": "README.md",
            "type": "blob"
          },
          "title": "Before",
          "type": "string"
        },
        "standup_id": {
          "default": {
            "path": "README.md",
            "type": "blob"
          },
          "title": "Standup Id",
          "type": "integer"
        },
        "user_id": {
          "default": {
            "path": "README.md",
            "type": "blob"
          },
          "title": "User Id",
          "type": "integer"
        }
      },
      "title": "fetch_reportsArguments",
      "type": "object"
    },
    "name": "fetch_reports"
  }
]