Replace sprint MCP tools with board equivalents + add delete_project #35

Closed
opened 2026-03-13 19:14:08 +00:00 by forgejo_admin · 0 comments

Lineage

plan-pal-e-docs → Phase 1 → Phase 1b (MCP tools)

Repo

forgejo_admin/pal-e-docs-mcp

User Story

As a session agent (Betty Sue)
I want board MCP tools instead of broken sprint tools
So that I can manage project boards after the sprint→board migration (PR #147 on pal-e-docs)

Context

PR #147 on pal-e-docs replaced sprint tables with board tables. The 10 sprint MCP tools in this repo now call SDK methods that hit nonexistent /sprints/ endpoints. They must be replaced with board equivalents that hit the new /boards/ endpoints.

Additionally, delete_project is missing from the MCP tools — the API endpoint exists (PR #145) but there's no MCP tool to call it.

Key API changes (sprint → board):

  • Boards are per-project (one board per project), not standalone like sprints
  • Board slug is auto-generated as board-{project_slug}
  • POST /boards takes project_slug + name (no slug, goal, status, dates)
  • PATCH /boards/{slug} only updates name
  • Items: POST /boards/{slug}/items, PATCH /boards/{slug}/items/{item_id}, DELETE /boards/{slug}/items/{item_id}
  • Backlog: GET /boards/backlog/items?item_type=...
  • Bulk move: PATCH /boards/{slug}/items/bulk
  • Board columns: backlog, todo, next_up, in_progress, needs_approval, qa, done (unchanged)
  • Item types: plan, phase, issue, todo (repo/project removed)

Important: The SDK (pal-e-docs-sdk) still has sprint methods. This issue does NOT update the SDK — MCP tools should call the API directly via httpx until the SDK is updated in a separate issue. Use the same get_sdk()._client pattern or add raw HTTP helpers.

File Targets

Files to modify:

  • src/pal_e_docs_mcp/tools/sprints.py — DELETE this file entirely
  • src/pal_e_docs_mcp/tools/boards.py — CREATE new file with board tools
  • src/pal_e_docs_mcp/tools/projects.py — ADD delete_project tool
  • src/pal_e_docs_mcp/tools/__init__.py — update imports (sprints → boards)

Files NOT to touch:

  • src/pal_e_docs_mcp/server.py — no changes needed

Acceptance Criteria

  • All sprint tools removed (create_sprint, get_sprint, list_sprints, update_sprint, delete_sprint, add_sprint_item, move_sprint_item, remove_sprint_item, get_sprint_board, get_backlog, bulk_move_items)
  • Board tools added: create_board, get_board, list_boards, update_board, delete_board, add_board_item, move_board_item, remove_board_item, list_board_items, get_backlog, bulk_move_items
  • delete_project tool added to projects.py
  • All tools have proper Annotated[...] parameter descriptions
  • Tool descriptions mention valid column/item_type values
  • ruff check . and ruff format --check . pass

Test Expectations

  • No automated tests in this repo (MCP server is integration-tested via smoke tests)
  • Manual verification: start MCP server, list tools, confirm board tools appear and sprint tools are gone

Constraints

  • Match existing tool patterns (see notes.py, projects.py for style)
  • Use get_sdk() for API calls where SDK methods exist. For board methods not yet in SDK, use raw HTTP via get_sdk()._session (the httpx client)
  • Keep tool parameter types simple (str, int, str | None) — MCP doesn't support complex types well
  • bulk_move_items takes a JSON string parameter (same pattern as current sprint version)

Checklist

  • PR opened
  • No unrelated changes
  • Closes #35 in PR body
  • pal-e-docs — PR #147 (board tables API)
  • pal-e-docs-sdk — separate issue for SDK update
### Lineage `plan-pal-e-docs` → Phase 1 → Phase 1b (MCP tools) ### Repo `forgejo_admin/pal-e-docs-mcp` ### User Story As a session agent (Betty Sue) I want board MCP tools instead of broken sprint tools So that I can manage project boards after the sprint→board migration (PR #147 on pal-e-docs) ### Context PR #147 on pal-e-docs replaced sprint tables with board tables. The 10 sprint MCP tools in this repo now call SDK methods that hit nonexistent `/sprints/` endpoints. They must be replaced with board equivalents that hit the new `/boards/` endpoints. Additionally, `delete_project` is missing from the MCP tools — the API endpoint exists (PR #145) but there's no MCP tool to call it. **Key API changes (sprint → board):** - Boards are per-project (one board per project), not standalone like sprints - Board slug is auto-generated as `board-{project_slug}` - `POST /boards` takes `project_slug` + `name` (no slug, goal, status, dates) - `PATCH /boards/{slug}` only updates `name` - Items: `POST /boards/{slug}/items`, `PATCH /boards/{slug}/items/{item_id}`, `DELETE /boards/{slug}/items/{item_id}` - Backlog: `GET /boards/backlog/items?item_type=...` - Bulk move: `PATCH /boards/{slug}/items/bulk` - Board columns: backlog, todo, next_up, in_progress, needs_approval, qa, done (unchanged) - Item types: plan, phase, issue, todo (repo/project removed) **Important:** The SDK (pal-e-docs-sdk) still has sprint methods. This issue does NOT update the SDK — MCP tools should call the API directly via httpx until the SDK is updated in a separate issue. Use the same `get_sdk()._client` pattern or add raw HTTP helpers. ### File Targets Files to modify: - `src/pal_e_docs_mcp/tools/sprints.py` — DELETE this file entirely - `src/pal_e_docs_mcp/tools/boards.py` — CREATE new file with board tools - `src/pal_e_docs_mcp/tools/projects.py` — ADD `delete_project` tool - `src/pal_e_docs_mcp/tools/__init__.py` — update imports (sprints → boards) Files NOT to touch: - `src/pal_e_docs_mcp/server.py` — no changes needed ### Acceptance Criteria - [ ] All sprint tools removed (create_sprint, get_sprint, list_sprints, update_sprint, delete_sprint, add_sprint_item, move_sprint_item, remove_sprint_item, get_sprint_board, get_backlog, bulk_move_items) - [ ] Board tools added: create_board, get_board, list_boards, update_board, delete_board, add_board_item, move_board_item, remove_board_item, list_board_items, get_backlog, bulk_move_items - [ ] delete_project tool added to projects.py - [ ] All tools have proper Annotated[...] parameter descriptions - [ ] Tool descriptions mention valid column/item_type values - [ ] `ruff check .` and `ruff format --check .` pass ### Test Expectations - No automated tests in this repo (MCP server is integration-tested via smoke tests) - Manual verification: start MCP server, list tools, confirm board tools appear and sprint tools are gone ### Constraints - Match existing tool patterns (see notes.py, projects.py for style) - Use `get_sdk()` for API calls where SDK methods exist. For board methods not yet in SDK, use raw HTTP via `get_sdk()._session` (the httpx client) - Keep tool parameter types simple (str, int, str | None) — MCP doesn't support complex types well - `bulk_move_items` takes a JSON string parameter (same pattern as current sprint version) ### Checklist - [ ] PR opened - [ ] No unrelated changes - [ ] `Closes #35` in PR body ### Related - `pal-e-docs` — PR #147 (board tables API) - `pal-e-docs-sdk` — separate issue for SDK update
forgejo_admin 2026-03-13 19:22:35 +00:00
Sign in to join this conversation.
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/pal-e-mcp#35
No description provided.