feat: implement MCP server wrapping groupme-sdk #1

Closed
opened 2026-03-24 08:32:06 +00:00 by forgejo_admin · 0 comments

Type

Feature

Lineage

Parent: forgejo_admin/basketball-api#157
Plan: plan-wkq

Repo

forgejo_admin/groupme-mcp

User Story

As a platform operator, I want to manage GroupMe groups, members, and messages via MCP tools so AI agents can automate group management from conversations.

Context

MCP server wrapping groupme-sdk so AI agents can manage GroupMe directly from conversations. Same pattern as pal-e-docs-mcp: thin MCP layer over SDK, FastMCP decorators, hatchling build, uv for dependency management. membership_audit is DEFERRED (depends on basketball-api DB tables not yet built).

File Targets

  • src/groupme_mcp/__init__.py -- package init
  • src/groupme_mcp/__main__.py -- entry point
  • src/groupme_mcp/server.py -- MCP server setup, client lifecycle, helpers
  • src/groupme_mcp/tools/__init__.py -- tool registration
  • src/groupme_mcp/tools/groups.py -- create_group, list_groups, get_group
  • src/groupme_mcp/tools/members.py -- add_member, remove_member, list_members
  • src/groupme_mcp/tools/messages.py -- send_message
  • tests/conftest.py -- mock_sdk fixture
  • tests/test_groups.py -- unit tests for group tools
  • tests/test_members.py -- unit tests for member tools
  • tests/test_messages.py -- unit tests for message tools
  • pyproject.toml -- project config with groupme-sdk from Forgejo PyPI

Acceptance Criteria

  • All 7 MCP tools implemented and tested
  • pyproject.toml configured with groupme-sdk dependency from Forgejo PyPI
  • Tests pass with pytest tests/
  • ruff format + check clean

Test Expectations

  • Unit tests for all 7 MCP tools with mocked SDK
  • Verify SDK methods called with correct arguments
  • Verify error handling returns structured JSON errors
  • Run command: pytest tests/

Constraints

  • Follow pal-e-docs-mcp patterns exactly (FastMCP, hatchling, uv)
  • Token from env var GROUPME_ACCESS_TOKEN
  • membership_audit is DEFERRED -- do not implement
  • Thin wrapper over SDK, minimal logic in MCP layer

Checklist

  • PR opened
  • Tests pass
  • No unrelated changes
  • Parent issue: forgejo_admin/basketball-api#157
  • Plan: plan-wkq
  • Dependency: groupme-sdk on Forgejo PyPI
### Type Feature ### Lineage Parent: `forgejo_admin/basketball-api#157` Plan: `plan-wkq` ### Repo `forgejo_admin/groupme-mcp` ### User Story As a platform operator, I want to manage GroupMe groups, members, and messages via MCP tools so AI agents can automate group management from conversations. ### Context MCP server wrapping groupme-sdk so AI agents can manage GroupMe directly from conversations. Same pattern as pal-e-docs-mcp: thin MCP layer over SDK, FastMCP decorators, hatchling build, uv for dependency management. `membership_audit` is DEFERRED (depends on basketball-api DB tables not yet built). ### File Targets - `src/groupme_mcp/__init__.py` -- package init - `src/groupme_mcp/__main__.py` -- entry point - `src/groupme_mcp/server.py` -- MCP server setup, client lifecycle, helpers - `src/groupme_mcp/tools/__init__.py` -- tool registration - `src/groupme_mcp/tools/groups.py` -- create_group, list_groups, get_group - `src/groupme_mcp/tools/members.py` -- add_member, remove_member, list_members - `src/groupme_mcp/tools/messages.py` -- send_message - `tests/conftest.py` -- mock_sdk fixture - `tests/test_groups.py` -- unit tests for group tools - `tests/test_members.py` -- unit tests for member tools - `tests/test_messages.py` -- unit tests for message tools - `pyproject.toml` -- project config with groupme-sdk from Forgejo PyPI ### Acceptance Criteria - [ ] All 7 MCP tools implemented and tested - [ ] pyproject.toml configured with groupme-sdk dependency from Forgejo PyPI - [ ] Tests pass with `pytest tests/` - [ ] ruff format + check clean ### Test Expectations - Unit tests for all 7 MCP tools with mocked SDK - Verify SDK methods called with correct arguments - Verify error handling returns structured JSON errors - Run command: `pytest tests/` ### Constraints - Follow pal-e-docs-mcp patterns exactly (FastMCP, hatchling, uv) - Token from env var `GROUPME_ACCESS_TOKEN` - membership_audit is DEFERRED -- do not implement - Thin wrapper over SDK, minimal logic in MCP layer ### Checklist - [ ] PR opened - [ ] Tests pass - [ ] No unrelated changes ### Related - Parent issue: `forgejo_admin/basketball-api#157` - Plan: `plan-wkq` - Dependency: `groupme-sdk` on Forgejo PyPI
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
forgejo_admin/groupme-mcp#1
No description provided.