v1.6.0-alpha: New tools, REST API board migration (OP#617) #36

Merged
Mike Bros merged 5 commits from feature/406-auto-membership into main 2026-02-16 10:01:54 +00:00
Contributor

Summary

  • OP#406: Auto-add API user as project member on create_project — discovers user via /users/me, finds Manager role, adds membership automatically
  • OP#407: Already implemented (type param existed) — closed without changes
  • OP#365: Added list_watchers, add_watcher, remove_watcher tools using /work_packages/{id}/watchers endpoints
  • OP#366: Added delete_work_package and delete_project tools with confirmation messages
  • OP#555: Migrated all board tools (list_boards, create_board, delete_board) from Rails runner to REST API via the Grids endpoint — boards now work in Direct (stdio) mode without Docker

Verification

  • Create a new project via MCP and verify the API user is auto-added as a member
  • List watchers on a work package, add a watcher, remove a watcher
  • Delete a test work package and verify the confirmation message
  • List boards, create a status board with multiple columns, verify it appears in the OpenProject UI
  • Delete a board and verify associated queries are cleaned up
## Summary - OP#406: Auto-add API user as project member on `create_project` — discovers user via `/users/me`, finds Manager role, adds membership automatically - OP#407: Already implemented (type param existed) — closed without changes - OP#365: Added `list_watchers`, `add_watcher`, `remove_watcher` tools using `/work_packages/{id}/watchers` endpoints - OP#366: Added `delete_work_package` and `delete_project` tools with confirmation messages - OP#555: Migrated all board tools (`list_boards`, `create_board`, `delete_board`) from Rails runner to REST API via the Grids endpoint — boards now work in Direct (stdio) mode without Docker ## Verification - [ ] Create a new project via MCP and verify the API user is auto-added as a member - [ ] List watchers on a work package, add a watcher, remove a watcher - [ ] Delete a test work package and verify the confirmation message - [ ] List boards, create a status board with multiple columns, verify it appears in the OpenProject UI - [ ] Delete a board and verify associated queries are cleaned up ## Links - Epic: [OP#617](https://project.bros.ninja/work_packages/617) - Version: [v1.6.0-alpha](https://project.bros.ninja/projects/op-mcp/versions/56)
After creating a project, the handler now discovers the API user via
/users/me, finds the best available role (preferring Manager), and adds
the user as a project member. This ensures subsequent MCP tools work
without requiring manual membership setup. The auto-membership is
non-fatal — errors are silently caught so project creation always
succeeds even if the membership call fails.

Closes OP#406

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Adds three new tools for managing work package watchers:
- list_watchers: list users watching a work package
- add_watcher: subscribe a user to change notifications
- remove_watcher: unsubscribe a user from notifications

Uses the standard /api/v3/work_packages/{id}/watchers endpoints.

Closes OP#365

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Adds two new destructive tools for cleanup operations:
- delete_work_package: permanently removes a work package by ID
- delete_project: permanently removes a project and all its contents

Both tools fetch the resource first to include name/subject in the
confirmation message, providing clear feedback about what was deleted.

Closes OP#366

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
feat(boards): migrate all board tools from Rails to REST API
All checks were successful
CI / lint (pull_request) Successful in 10s
CI / security (pull_request) Successful in 9s
CI / test (pull_request) Successful in 18s
0edfaea42a
Rewrites list_boards, create_board, and delete_board to use the
OpenProject Grids REST API instead of Rails runner commands. This
removes the Docker sidecar requirement for all board operations.

- list_boards: uses GET /api/v3/grids with scope filter
- create_board: creates queries via REST API, then builds the grid
  with widgets, name, and board type options
- delete_board: fetches grid to find associated queries, deletes
  queries then grid via REST API

Verified against live API that the Grids endpoint returns name,
options, and widget options despite not being in the OpenAPI spec.

Closes OP#555

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
docs: update README and wiki for v1.6.0-alpha changes
All checks were successful
CI / lint (pull_request) Successful in 11s
CI / security (pull_request) Successful in 6s
CI / test (pull_request) Successful in 19s
f8ff6b3e6d
Update tool counts from 57 to 62, add watchers and delete operations
to feature lists, update board tools as REST API (no longer sidecar-only),
add admin command audit link, and note board migration in troubleshooting.

Closes OP#621

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Mike Bros approved these changes 2026-02-16 10:01:49 +00:00
Mike Bros deleted branch feature/406-auto-membership 2026-02-16 10:01:54 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
2 participants
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
mike/open-project-sidecar-mcp!36
No description provided.