-
v1.11.0 — Lenient Bulk Input Coercion
StableAll checks were successfulCI / lint (push) Successful in 10sCI / test (push) Successful in 33sPublish / detect-release (push) Successful in 1m40sCI / security (push) Successful in 1m44sPublish / tag (push) Successful in 5sPublish / publish-forgejo (push) Successful in 8sPublish / publish-npm (push) Successful in 11sPublish / promote-release (push) Successful in 1sPublish / publish-container (push) Successful in 36sreleased this
2026-03-18 05:39:55 +00:00 | 0 commits to main since this releaseWhat's Changed
Improved
bulk_update_work_packagesnow accepts flat shorthand (work_package_ids+ shared fields) and auto-reshapes into items arraybulk_create_work_packagesauto-wraps single objects into items arraybulk_create_relationsauto-wraps single relation objects into items arraybulk_transition_work_packagesacceptsitems: [{ id: N }]format (extracts IDs automatically)bulk_delete_work_packagesacceptsitems: [{ id: N }]format (extracts IDs automatically)- All bulk tools return coaching error messages with correct usage examples on invalid input
- Shared
idArrayPreprocesshelper replaces duplicated string/CSV/JSON ID array coercion - Fixed
err()call sites to pass Error objects correctly
Tasks
- OP#2494: Add z.preprocess reshaping for bulk_update_work_packages flat input
- OP#2495: Add coaching error wrapper to bulk tool Zod schemas
- OP#2496: Add z.preprocess reshaping for bulk_create_work_packages flat input
- OP#2497: Add z.preprocess reshaping for bulk_create_relations flat input
- OP#2498: Test lenient bulk coercion and coaching errors
- OP#2499: Update CHANGELOG for v1.11.0
Install
npm install open-project-sidecar-mcp@1.11.0Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
v1.10.1 — Bulk Tools Polish
StableAll checks were successfulPublish / detect-release (push) Successful in 6sCI / security (push) Successful in 8sPublish / tag (push) Successful in 5sPublish / publish-forgejo (push) Successful in 8sPublish / publish-npm (push) Successful in 10sPublish / promote-release (push) Successful in 1sCI / lint (push) Successful in 47sCI / test (push) Successful in 1m28sPublish / publish-container (push) Successful in 1m52sreleased this
2026-03-18 00:50:54 +00:00 | 11 commits to main since this releaseWhat's Changed
Bug Fixes
- bulk_delete cascade handling — 404 on delete is now treated as success (item already gone via parent cascade delete), eliminating spurious failures when deleting parent+child WPs in the same batch
Improvements
- bulk_update schema parity — Added
type,start_date,due_date, andestimated_hoursfields tobulk_update_work_packages, matching the fields available inbulk_create_work_packagesand the singleupdate_work_packagetool
Tasks
- OP#2406: Handle cascade-deleted WPs as success in bulk_delete
- OP#2407: Add type, dates, and estimated_hours to bulk_update schema
Install
npm install open-project-sidecar-mcp@1.10.1 --registry=https://git.bros.ninja/api/packages/mike/npm/Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
v1.10.0-alpha — Bulk Delete Backup & Restore
Pre-releaseAll checks were successfulCI / lint (push) Successful in 9sCI / security (push) Successful in 9sPublish / detect-release (push) Successful in 9sPublish / tag (push) Successful in 3sPublish / publish-forgejo (push) Successful in 9sPublish / publish-npm (push) Successful in 10sPublish / promote-release (push) Successful in 1sCI / test (push) Successful in 38sPublish / publish-container (push) Successful in 27sreleased this
2026-03-18 00:22:04 +00:00 | 14 commits to main since this releaseWhat's Changed
Bulk Delete Backup & Restore System
When
bulk_delete_work_packagesruns, it now saves the full data of each deleted work package to a JSON backup file before deletion. Two new tools enable discovery and recovery:list_delete_backups— Lists available backup files with timestamp, item count, WP IDs, and file sizerestore_deleted_work_packages— Recreates work packages from a backup file with original subject, description, type, status, priority, assignee, version, and parent (new IDs assigned)
Backup Storage
- Local (stdio):
~/.op-mcp/backups/— persistent across reboots - Docker sidecar:
/data/backups/via named volume — persistent across container lifecycle - Configurable via
BULK_DELETE_BACKUP_DIRenv var - Retention: last 20 backups kept (configurable via
BULK_DELETE_MAX_BACKUPS)
Setup Wizard
The
--setupwizard now prompts for a backup directory in stdio mode, with the option to accept the default or specify a custom path.Tasks
- OP#2390: Persistent backup directory for bulk_delete_work_packages
- OP#2391: Backup retention with configurable max limit
- OP#2392: Add list_delete_backups tool
- OP#2393: Add restore_deleted_work_packages tool
- OP#2394: Setup wizard: backup directory prompt for stdio mode
- OP#2395: Docker compose: backup volume configuration
- OP#2396: E2E tests for backup, list, and restore tools (8 new tests)
- OP#2397: Update README and tool reference documentation
Install
npm install open-project-sidecar-mcp@1.10.0-alpha --registry=https://git.bros.ninja/api/packages/mike/npm/Stats
- Total tools: 69
- Tests: 287/287 passing
- Vulnerabilities: 0
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
v1.9.0 — Bulk Operations Expansion
StableAll checks were successfulCI / lint (push) Successful in 9sPublish / detect-release (push) Successful in 3m44sPublish / tag (push) Successful in 9sPublish / publish-container (push) Successful in 44sCI / security (push) Successful in 4m49sCI / test (push) Successful in 5m46sPublish / publish-npm (push) Successful in 4m43sPublish / publish-forgejo (push) Successful in 4m44sPublish / promote-release (push) Successful in 1sreleased this
2026-03-17 04:52:44 +00:00 | 24 commits to main since this releaseWhat's Changed
Features
- bulk_create_work_packages — Create multiple work packages in a single call (max 200). Accepts the same fields as
create_work_package. Individual failures don't abort the batch. - bulk_create_relations — Create multiple work package relations in a single call (max 200). Supports all relation types (relates, blocks, follows, etc.).
- bulk_delete_work_packages — Delete multiple work packages in a single call (max 200). Accepts an array of IDs or CSV string.
All three tools follow the established bulk operations pattern: independent processing, per-item success/failure results, and max batch size enforcement.
Tests
- 13 new e2e tests covering all three bulk tools (success, partial failure, oversized batch, empty array, CSV/JSON input)
- Updated mock OpenProject server with handlers for POST work packages, POST relations, DELETE work packages, and GET types
Documentation
- Updated README: tool count 64 → 67, expanded bulk operations description
- Updated wiki tool reference with new Bulk Operations section
Tasks
- OP#2367: Add bulk_create_work_packages tool
- OP#2368: Add bulk_create_relations tool
- OP#2369: Add bulk_delete_work_packages tool
- OP#2373: Unit tests for bulk operations expansion
- OP#2375: Update README with bulk operations documentation
Install
npx open-project-sidecar-mcp@1.9.0 setupDownloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- bulk_create_work_packages — Create multiple work packages in a single call (max 200). Accepts the same fields as
-
v1.8.0 — Dogfood Fixes & Bulk Operations
StableAll checks were successfulPublish / detect-release (push) Successful in 24sCI / security (push) Successful in 29sPublish / tag (push) Successful in 4sCI / lint (push) Successful in 7sCI / test (push) Successful in 25sPublish / publish-npm (push) Successful in 9sPublish / publish-forgejo (push) Successful in 8sPublish / promote-release (push) Successful in 2sPublish / publish-container (push) Successful in 28sreleased this
2026-03-16 13:23:59 +00:00 | 32 commits to main since this releaseWhat's Changed
Features
- Bulk update work packages — new
bulk_update_work_packagestool for batch updates with independent error handling and 409 retry per item (09f65f9) - Bulk transition work packages — new
bulk_transition_work_packagestool for batch status changes with optional comments (54b40b5) - TTL-based cache expiry — name-resolution caches (statuses, types, priorities, activities) now expire after 5 minutes, configurable via
CACHE_TTL_MSenv var (182519b)
Bug Fixes
- Dynamic MCP server version — server now reads version from
package.jsoninstead of hardcoding"1.4.0"(b93d1b2) - project_id coercion — string-encoded integers (e.g.,
"8") are automatically coerced to numbers; descriptions now include explicit format examples (2b05760) - Activity caching in log_time — activity lookups now use the same Map cache as statuses/types/priorities (
e927676) - Project-scoped activity 404 — log_time now tries project-scoped activities via the time entry form endpoint when global lookup fails, and retries without activity on 404 (
0620b19)
Documentation
- Created
CLAUDE.mdfor agent guidance (b454025) - Created
CHANGELOG.mdwith retroactive entries for all releases (85216bc) - Updated
README.mdwith 64 tool count, bulk operations, cache TTL, dogfooding section (e9dbc64) - Enriched top-used tool descriptions with usage examples (
c83ffbf) - Added "Advanced:" prefix to low-usage tools (
127a8ab)
Tests
- 11 new tests: 9 e2e tests for bulk tools with mock OpenProject API, 2 cleanStringParam coercion tests (
1f06bd7)
Tasks
- OP#2270: Fix hardcoded MCP server version string
- OP#2267: Improve project_id parameter descriptions and coercion
- OP#2268: Cache activity lookups in log_time
- OP#2269: Fix log_time activity 404 on project-scoped activities
- OP#2264: Implement bulk_update_work_packages tool
- OP#2265: Implement bulk_transition_work_packages tool
- OP#2266: Add bulk operation tests
- OP#2274: Improve tool descriptions for top-used tools
- OP#2275: Deprioritize low-usage tool descriptions
- OP#2276: Add TTL expiry to name-resolution caches
- OP#2272: Create CLAUDE.md for agent guidance
- OP#2271: Create CHANGELOG.md with retroactive entries
- OP#2273: Update README.md with current state
Install
npx -y open-project-sidecar-mcp@1.8.0 --setupOr update Docker sidecar:
docker compose pull mcp && docker compose up -d mcpDownloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- Bulk update work packages — new
-
v1.7.0
StableAll checks were successfulPublish / detect-release (push) Successful in 5sCI / test (push) Successful in 19sPublish / publish-npm (push) Successful in 10sPublish / promote-release (push) Successful in -1sCI / lint (push) Successful in 9sCI / security (push) Successful in 8sPublish / tag (push) Successful in 4sPublish / publish-forgejo (push) Successful in 6sPublish / publish-container (push) Successful in 24sreleased this
2026-02-16 10:26:04 +00:00 | 51 commits to main since this releasev1.7.0 — First Stable Release
The first stable release of the OpenProject MCP server, graduating from alpha.
What's Changed
- OP#622: Add update/upgrade instructions to README and wiki
What's Included (since 1.0.0-alpha)
62 tools across 16 categories covering projects, work packages, versions, time tracking, wiki pages, boards, news, forums, relations, comments, memberships, notifications, watchers, queries, and admin commands.
Highlights
- 62 tools for comprehensive OpenProject management
- Two deployment modes: Direct (stdio) for any developer, Docker sidecar for admin_command and shared servers
- Interactive setup wizard:
npx -y open-project-sidecar-mcp --setup - Board tools via REST API: No Docker required for Kanban boards
- Auto-membership: API user automatically added as project member on creation
- Update guide: Full documentation for upgrading between versions
Install
# New install npx -y open-project-sidecar-mcp@1.7.0 --setup # Update from previous version npx -y open-project-sidecar-mcp@latest --setup # Docker sidecar update docker compose pull mcp && docker compose up -d mcpDownloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
v1.6.0-alpha
Pre-releaseAll checks were successfulCI / lint (push) Successful in 9sPublish / detect-release (push) Successful in 5sCI / security (push) Successful in 9sPublish / promote-release (push) Successful in 2sPublish / publish-container (push) Successful in 26sPublish / tag (push) Successful in 5sCI / test (push) Successful in 20sPublish / publish-forgejo (push) Successful in 10sPublish / publish-npm (push) Successful in 10sreleased this
2026-02-16 10:04:32 +00:00 | 55 commits to main since this releaseWhat's Changed
- OP#406: Auto-add API user as member when creating new projects
- OP#407: Add type parameter to update_work_package tool
- OP#365: Add watcher tools (list_watchers, add_watcher, remove_watcher)
- OP#366: Add delete operations (delete_work_package, delete_project)
- OP#555: Migrate all board tools from Rails to REST API (no longer sidecar-only)
- OP#620: Audit admin_command actions — confirmed all 12 have no REST API equivalents
- OP#621: Update wiki docs and README for v1.6.0-alpha changes
Highlights
- 5 new tools:
list_watchers,add_watcher,remove_watcher,delete_work_package,delete_project(57 → 62 total) - Board tools migrated to REST API:
list_boards,create_board,delete_boardnow use the Grids API instead of Rails runner — works in all deployment modes, no Docker required - Auto-membership on project creation:
create_projectnow automatically adds the API user as a member with the best available role - Type updates:
update_work_packagenow supports changing the work package type
Install
npx -y open-project-sidecar-mcp@1.6.0-alpha --setupDownloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
v1.5.0-alpha
Pre-releaseAll checks were successfulPublish / detect-release (push) Successful in 5sCI / lint (push) Successful in 9sCI / security (push) Successful in 11sPublish / tag (push) Successful in 4sPublish / publish-forgejo (push) Successful in 11sPublish / publish-npm (push) Successful in 13sCI / test (push) Successful in 21sPublish / promote-release (push) Successful in 2sPublish / publish-container (push) Successful in 22sreleased this
2026-02-16 09:01:17 +00:00 | 63 commits to main since this releaseFeatures
- Wiki documentation -- Updated 5 wiki drafts with v1.4.17-1.4.20 feature documentation (auth validation, hostname prompt, external URL in generated YAML)
- Setup wizard e2e tests -- 3 end-to-end tests that spawn a real sidecar and pipe scripted answers through the setup wizard, validating correct key, wrong key rejection, and retry flows
- Changelog generator --
scripts/changelog.shparses conventional commits between tags and outputs grouped markdown (Features, Bug Fixes, Refactoring, etc.)
Bug Fixes
- setup: Fix auth validation skipped when docker-connect URL probe failed -- validation now runs unconditionally after URL normalization
- setup: Add shared validation pipeline comments at all setup entry points to prevent future code path divergence
Documentation
- 02-quick-start.md -- Added domain probing and API key validation steps
- 03-deployment-modes.md -- Updated sidecar wizard flow (hostname prompt, external URL), updated YAML example, added auth validation to connect flow
- 04-configuration-reference.md -- OPENPROJECT_URL now documented as external domain, added validation note
- 05-security.md -- Added setup-time validation section
- 08-troubleshooting.md -- Added entries for Invalid host_name, API key rejection, and MCP key rejection errors
Tests
- 241 total tests (3 new e2e, 7 hostname/YAML tests from v1.4.20)
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
v1.4.20-alpha
Pre-releaseAll checks were successfulPublish / detect-release (push) Successful in 5sCI / lint (push) Successful in 12sCI / security (push) Successful in 8sPublish / tag (push) Successful in 5sPublish / promote-release (push) Successful in 2sCI / test (push) Successful in 18sPublish / publish-forgejo (push) Successful in 12sPublish / publish-npm (push) Successful in 10sPublish / publish-container (push) Successful in 26sreleased this
2026-02-16 08:13:34 +00:00 | 68 commits to main since this releaseBug Fixes
- Docker sidecar setup: add hostname prompt — The setup wizard now interactively prompts for the OpenProject domain instead of silently auto-detecting
OPENPROJECT_HOST__NAMEfrom the compose file. The detected value is offered as a default. The resolved external URL is used asOPENPROJECT_URLin the generated sidecar YAML, ensuring the correctHostheader is sent and OpenProject accepts API requests. Previously, the hardcoded internal Docker URL (http://openproject:80) causedInvalid host_name configurationerrors.
Tests
- 7 new tests for hostname extraction from compose content and
generateMcpServiceYaml()with external URL parameter - 238 total tests passing
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- Docker sidecar setup: add hostname prompt — The setup wizard now interactively prompts for the OpenProject domain instead of silently auto-detecting
-
v1.4.19-alpha
Pre-releaseAll checks were successfulCI / lint (push) Successful in 8sPublish / publish-npm (push) Successful in 17sPublish / detect-release (push) Successful in 4sCI / security (push) Successful in 7sPublish / tag (push) Successful in 4sCI / test (push) Successful in 19sPublish / publish-forgejo (push) Successful in 9sPublish / promote-release (push) Successful in 1sPublish / publish-container (push) Successful in 24sreleased this
2026-02-16 07:17:31 +00:00 | 70 commits to main since this releaseWhat's Changed
Bug Fix
- API key validation now works for all users. The auth check was only in the
--setupcode path, not thenpxauto-setup path (promptCredentials). Both paths now use the same sharedvalidateAuthKey()function.
Improvements
- Visible "Validating API key... ✓/✗" output during setup
- Retry loop: wrong key prompts to re-enter or cancel
- Network errors warn and proceed gracefully
Testing
- 8 new tests (231 total):
validateAuthKeyflow tests + HTTP integration tests - Covers: correct key, wrong key rejection, retry with correct key, network error fallback
Full Changelog: https://git.bros.ninja/mike/open-project-sidecar-mcp/compare/v1.4.18-alpha...v1.4.19-alpha
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- API key validation now works for all users. The auth check was only in the