Skip to content
Agentmart
Submit a tool

OpenProject

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

Connector by alex13slem · GitHub account verified by the MCP Registry

IndexedMITLocal (stdio)
Write a review

Install

Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.

npx agentmarket install connector/alex13slem-openproject

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

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

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this server can do and what it asks for, from its tool list and install config. Checked Oct 25, 2026.

Tools
23 read · 10 write · 5 delete
Secrets
1 (API keys, tokens or passwords)
Install scripts
Not scanned yet
Runs as
Node.js package

Tools by what they do 38

Read from the source code; the running server may list different tools.

Read 23 · Look things up without changing anything.

  • count_projects
  • count_work_packages
  • get_board
  • get_current_user
  • get_notification
  • get_openproject_api
  • get_project
  • get_user
  • get_work_package
  • get_work_package_attachment
  • get_work_package_relation
  • list_available_assignees
Show 11 more tools
  • list_board_lanes
  • list_boards
  • list_notifications
  • list_project_versions
  • list_projects
  • list_users
  • list_work_package_activities
  • list_work_package_attachments
  • list_work_package_relations
  • list_work_package_watchers
  • search_work_packages

Write 10 · Create, change, send or run things.

  • add_work_package_comment
  • add_work_package_watcher
  • create_project
  • create_work_package
  • create_work_package_relation
  • mark_all_notifications_read
  • mark_notification_read
  • update_project
  • update_work_package
  • upload_work_package_attachment

Delete 5 · Delete, drop, revoke or wipe things.

  • delete_project
  • delete_work_package
  • delete_work_package_attachment
  • delete_work_package_relation
  • remove_work_package_watcher

Secrets and settings it asks for

Secrets: values you paste in that let it act as you.

  • OPENPROJECT_API_TOKEN

Other settings (environment variables or headers).

  • OPENPROJECT_ALLOWED_UPLOAD_DIRS
  • OPENPROJECT_AUTH_MODE
  • OPENPROJECT_PAGE_SIZE
  • OPENPROJECT_TIMEOUT_MS
  • OPENPROJECT_URL

Files it touches

  • Any path the agent passes to its tools

Tools (38)

Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].

  • 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_projectsread-only

    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_packagesread-only

    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_project

    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_package

    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_relation

    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_projectcan change or delete data

    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_packagecan change or delete data

    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_attachmentcan change or delete data

    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_relationcan change or delete data

    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_boardread-only

    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_userread-only

    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_notificationread-only

    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_apiread-only

    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.

Show 23 more tools
  • get_projectread-only

    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_userread-only

    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_packageread-only

    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_attachmentread-only

    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_relationread-only

    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_assigneesread-only

    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_lanesread-only

    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_boardsread-only

    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_notificationsread-only

    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_versionsread-only

    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_projectsread-only

    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_usersread-only

    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_activitiesread-only

    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_attachmentsread-only

    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_relationsread-only

    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_watchersread-only

    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_watchercan change or delete data

    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_packagesread-only

    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_project

    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_package

    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_attachment

    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.

Signals

Stars
0
Forks
1
Open issues
5
Last commit (this folder)
Jul 14, 2026 (3 months ago)
Last release
Jul 14, 2026 (3 months ago)

From GitHub (fetched Oct 24, 2026).

Details

Registry name
io.github.alex13slem/openproject
Version
0.5.0
Auth
API key
License
MIT
First seen
Oct 24, 2026
Last checked
Oct 25, 2026
Cite this page

OpenProject MCP server. Agent Mart. https://agentmart.dev/connectors/alex13slem-openproject (last updated 2026-10-25)