MCP.Market

OpenProject MCP server

by alex13slem·io.github.alex13slem/openproject·v0.5.0

Manage OpenProject projects, work packages, files, relations, boards, users, and notifications.

B71/100grade B
What users say
No reviews yet
Be the first
Safety scan
B71/100

full report

Adoption
New

0 stars35 downloads/wk

Reviews

Write one

Nobody has reviewed OpenProject yet.

If you have run it, two minutes of your experience saves the next person an afternoon.

OpenProject tools (38, 11 write)

write = sends, deletes, buys or posts

Read from the package source without running it. The installed server may list more.

  • add_work_package_comment

    Append a Markdown comment to one work package and return the activity plus work-package URL. Use for progress notes or follow-ups, not field changes; this creates a permanent activity and can notify subscribed users.

  • add_work_package_watcher

    Subscribe a user as a watcher of one work package so OpenProject can notify them about changes. Use only for an explicit subscription request; adding an existing watcher is idempotent.

  • count_projects

    Return only the total number of projects matching native OpenProject filters. Use instead of list_projects when no project records are needed; this is read-only and minimizes response size.

  • count_work_packages

    Return only the total number of work packages matching native filters and an optional project. Use instead of search_work_packages when no task records are needed; all filters are combined with AND.

  • create_projectwrite action

    Create a project or subproject immediately. Use only after confirming a new project is wanted; parentId creates it below an existing project. Requires add-project permission and is not idempotent.

  • create_work_packagewrite action

    Create a work package and return the created resource plus browser URL. Use only for a new task in a resolved project; this writes immediately and may notify interested users unless notify is false. Omit typeId to select the project's Task type or first available type.

  • create_work_package_relationwrite action

    Create a directed typed relation from one work package to another, such as blocks, precedes, duplicates, or relates. Use after verifying both IDs and existing relations; this writes immediately and duplicate validity is enforced by OpenProject.

  • delete_projectwrite action

    Permanently schedule deletion of a project by numeric ID. Use only after get_project verifies an explicit deletion target. OpenProject archives it immediately and deletes it asynchronously; this destructive action cannot be undone through this server.

  • delete_work_packagewrite action

    Permanently delete one work package by ID. Use only for an explicit deletion request after verifying the target with get_work_package; this is destructive and cannot be undone through this server.

  • delete_work_package_attachmentwrite action

    Permanently delete one attachment by attachment ID. Use only after list_work_package_attachments verifies the file and ID; this is destructive and does not delete the work package.

  • delete_work_package_relationwrite action

    Permanently delete one relation without deleting either work package. Use only after list_work_package_relations confirms the relation ID; this destructive change removes the dependency or association.

  • get_board

    Get one OpenProject board by grid ID, including its widget and column configuration. Use when the board ID is already known; use list_boards for project discovery or list_board_lanes for cards.

  • get_current_user

    Return the current OpenProject user authenticated by the API token. Use to identify 'me' or verify credentials; unlike list_users, this does not require global user-management permission.

  • get_notification

    Get one in-app notification by ID with actor, project, activity, and related-resource links. Use after list_notifications when full context for a known notification is required; it remains unread.

  • get_openproject_api

    Read an OpenProject API v3 endpoint not covered by a focused tool. Use only as a read-only escape hatch after checking the typed tools. The path must be relative under /api/v3; absolute URLs, other origins, writes, and filesystem access are rejected.

  • get_project

    Get one complete project by numeric ID or identifier. Use when the target is already known and full project fields or links are needed; use list_projects for discovery. This is read-only.

  • get_user

    Get one OpenProject user by numeric ID. Use when the ID is already known; use list_available_assignees for assignment choices and list_users for administrator-level discovery.

  • get_work_package

    Get the complete HAL+JSON representation of one work package by numeric ID. Use after search when full descriptions, links, custom fields, or lockVersion are required; this performs no write.

  • get_work_package_attachment

    Download one verified attachment from a work package. Use after listing attachments. Text files return readable text; binary files return an embedded base64 MCP resource. The call fails before or during transfer if maxBytes is exceeded and does not write to disk.

  • get_work_package_relation

    Get one relation by relation ID, including its from/to links, type, description, and lag. Use after listing relations when complete details for a known relation are needed.

  • list_available_assignees

    List users permitted as assignees for exactly one project or work package. Use this before assignment when the global user list is unavailable; provide projectId or workPackageId, never both. This is read-only.

  • list_board_lanes

    Resolve one board's work-package query widgets into lanes with card summaries and pagination metadata. Use after list_boards identifies a board; pageSize limits cards per lane. This is read-only and does not move cards.

  • list_boards

    List paginated Kanban-style boards scoped to one project ID or identifier. Use to discover board grid IDs; use get_board for configuration or list_board_lanes for cards. This read-only call may return no boards when the module is disabled.

  • list_notifications

    List paginated in-app notifications for the authenticated user, optionally unread only. Use for inbox triage; this leaves read state unchanged. Use get_notification for one item's details and mark tools only after review.

  • list_project_versions

    List version or milestone IDs globally or for one project. Use before assigning a work package to a version; projectId returns only versions available in that project. This is read-only.

  • list_projects

    List visible projects with native filters, sorting, and pagination. Use this to discover project IDs or identifiers; use get_project when the target is already known and count_projects when only a total is needed.

  • list_users

    List or search the global OpenProject user directory with native filters and pagination. Use for administrator-level discovery; for ordinary task assignment prefer list_available_assignees because OpenProject may restrict this endpoint to user managers. This is read-only.

  • list_work_package_activities

    List paginated comments and field-change history for one work package. Use for audit context or conversation history; use get_work_package for current state and add_work_package_comment to append a new note. This is read-only.

  • list_work_package_attachments

    List metadata for files attached directly to a work package. Use before get_work_package_attachment to verify the attachment ID and size; no file content is downloaded.

  • list_work_package_relations

    List all typed relations involving one work package, including direction and lag. Use to inspect dependencies or duplicates before creating or deleting a relation; this is read-only.

  • list_work_package_watchers

    List current watchers of one work package. Use before adding or removing a watcher to verify membership and user IDs; this does not change subscriptions.

  • mark_all_notifications_read

    Mark every visible in-app notification as read for the authenticated user. Use only for an explicit clear-inbox request; this bulk state change is idempotent and does not modify related work packages.

  • mark_notification_read

    Mark one in-app notification as read for the authenticated user. Use after the notification has been reviewed; this changes inbox state but not the related project resource.

  • remove_work_package_watcherwrite action

    Unsubscribe a user from one work package's watchers. Use only after verifying workPackageId and userId; this changes notification behavior but does not delete the user or work package.

  • search_work_packages

    Search visible work packages with focused fields plus optional native filters, sorting, and pagination. Use this for discovery or lists; use get_work_package for the complete resource once an ID is known and count_work_packages for totals only.

  • update_projectwrite action

    Patch only the supplied fields on an existing project. Use for renaming, description, visibility, activation, or archival changes; omitted fields are preserved. Requires project administration permission.

  • update_work_packagewrite action

    Update only the supplied fields on an existing work package and return its browser URL. The tool fetches the current lockVersion first to prevent stale overwrites; null clears supported optional links. It writes immediately and may notify users unless notify is false.

  • upload_work_package_attachmentwrite action

    Read one explicit allowlisted local file and upload it to a work package. Use only when the user identified both the file and target task. Paths must be under OPENPROJECT_ALLOWED_UPLOAD_DIRS (default: current working directory). The call rejects files above maxBytes, sends bytes only to the configured OpenProject origin, creates a permanent attachment, and never modifies the local file.

Public scan report

scanner v0.1.9 · 2026-09-25 · same rubric, same numbers if you re-run it

1 medium
  • Code scan2 source files scanned20/25
  • –Live reliabilityno gateway calls yet and no remote to proben/a
  • –Tool poisoningtools not inspected (local package is not executed); not countedn/a
  • Auth qualitystatic API keys via environment variables6/15
  • Maintenancelast push 73 days ago12/15
  • Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10

Findings (1)

  • mediumeval / new Function usedexec.eval
    dist/openproject-mcp.js: …eCode, sch); const makeValidate = new Function(`${names_1.default.self}`, `${names_1.de…
Overall 71/100. Components that don't apply are left out of the denominator. Any critical finding is an F.RubricAppeal a findingJSON

How OpenProject compares

Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.

Safety score
71/100
higher than 36% of 48,255 servers
Tools
38
the typical server has 7
Tools that change things
29%
typical: 0%. Fewer write tools means less an agent can break
Downloads a week
35
more than 25% of 12,191 servers with a package

What its tools let an agent do: 23 read · 6 create · 4 change · 5 delete

Install OpenProject in Claude Code, Cursor or VS Code

Runs npx -y openproject-codex-plugin on your machine. Read the scan report first; the gateway never runs local packages.

claude mcp add openproject -- npx -y openproject-codex-plugin
Add to Cursor

What the publisher says

From the OpenProject repository's README, as published. We do not edit it. Read it on GitHub

OpenProject for Codex

Manage OpenProject from Codex — projects, work packages, attachments, relations, boards, users, watchers, and notifications. This free, open-source integration exposes 41 focused API v3 tools and is designed to work with OpenProject Community and Enterprise editions.

Why this project

attachments, connect related tasks, inspect boards, and handle notifications.

  • Broad read and write coverage: manage projects and work packages, upload

API v3 rather than requiring the OpenProject MCP Enterprise add-on.

  • Community Edition friendly: it uses the generally available OpenProject

can safely turn natural-language requests into explicit OpenProject actions.

  • Codex-native workflow: tools and guidance are packaged together so Codex

OpenProject remains the source of truth for permissions.

  • Runs locally: credentials stay in a private file on your machine, and

OpenProject also provides an official MCP server in Professional plans and above. As of July 2026, that server exposes read-only tools. This community project is a good fit when you need write operations, Codex-specific guidance, or support for Community Edition. See the official MCP documentation for the current capabilities of OpenProject's server.

What it can do

accountable users, priorities, statuses, and versions.

  • Create, inspect, update, count, archive, and delete projects.
  • Search work packages with native filters, sorting, and pagination.
  • Create and update tasks, dates, estimates, progress, hierarchy, assignees,

escape hatch.

  • Read activity history, add comments, and delete work packages.
  • List, download, upload, and delete attachments with size limits.
  • Create and inspect work-package relations and manage watchers.
  • Find users and valid assignees, including without global user-list access.
  • Read and clear notifications and inspect Kanban-style boards.
  • Discover statuses, priorities, types, and project versions.
  • Read otherwise unsupported API v3 resources through a restricted GET-only
  • Guide Codex toward safe, explicit OpenProject write operations.

Example workflow

You:   Find checkout-related tasks in the Storefront project.
Codex: I found #142 "Handle expired checkout sessions" and
       #157 "Add payment retry telemetry".

You:   Add a comment to #142 saying the API fix is ready for review.
Codex: Added the comment to work package #142.

Codex resolves the request through MCP tools, while OpenProject remains the source of truth for permissions and work-package state.

Requirements

  • Bun 1.3 or newer
  • Codex CLI with MCP support
  • An OpenProject API token with access to the projects you want to manage

Shortened. The full README is on GitHub.

Nothing above is checked by us. What we check is on the safety report.

OpenProject: common questions

Is OpenProject MCP server safe?
Mostly: it is graded B (71/100). Read the OpenProject safety report
How do I install OpenProject?
It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
Does OpenProject need an API key?
Yes. The registry entry asks for OPENPROJECT_API_TOKEN.
Is OpenProject maintained?
The last commit was 113 days ago (2026-07-14). The latest release is v0.5.0.
How does OpenProject compare with other MCP servers?
safety score 71/100 (higher than 36% of 48,255 servers); tools 38 (the typical server has 7); tools that change things 29% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.