Skip to main content
Glama
OliverRhyme

openproject-mcp

by OliverRhyme

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
OPENPROJECT_API_KEYYesAPI token from My account > Access tokens > API in OpenProject
OPENPROJECT_BASE_URLYesThe base URL of your OpenProject instance, e.g. https://community.openproject.org
OPENPROJECT_PAGE_SIZENoDefault page size for list endpoints25
OPENPROJECT_TIMEOUT_MSNoHTTP request timeout in milliseconds30000

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
op_list_projectsA

List OpenProject projects visible to the API key. Supports OpenProject filter syntax. Common fields: "active" ("=" true/false), "name_and_identifier" ("~" substring), "parent_id" ("=" id).

op_get_projectB

Get a single project by numeric id or identifier slug.

op_create_projectA

Create a new project. Requires admin or "add project" permission. Pass either a parent identifier or numeric id via _links.parent.href if creating a sub-project.

op_update_projectB

Patch an existing project. Only include the fields you want to change.

op_delete_projectA

Delete a project. Destructive; requires admin permission. The deletion is processed asynchronously by OpenProject.

op_list_work_packagesA

List work packages, optionally scoped to a project. Supports OpenProject filter syntax. Common filter fields: "status_id", "assignee", "project", "type", "priority", "subject" ("~" search), "updatedAt".

op_get_work_packageB

Fetch a single work package by numeric id with full HAL detail.

op_create_work_packageA

Create a work package in a project. At minimum provide subject, projectId, and typeId. When patching dates use ISO YYYY-MM-DD strings.

op_update_work_packageA

Patch fields on a work package. You MUST pass the current lockVersion (fetch it first with op_get_work_package) or OpenProject will reject the update with a stale-object error.

op_delete_work_packageA

Permanently delete a work package. Destructive.

op_list_work_package_activitiesB

List activities (comments and changes) on a work package, oldest first.

op_comment_work_packageB

Add a markdown comment to a work package activity stream. Optionally attach a file and embed it inline using attachFilePath.

op_current_userA

Return the user associated with the configured API key.

op_list_usersC

List users visible to the current API key. Supports filters such as "name" ("~" search), "status" ("=" "active"/"locked"/"invited"), "login" ("=" exact).

op_get_userA

Fetch a user by numeric id.

op_list_typesA

List work package types (Task, Bug, Feature, Milestone, etc.). Optionally scope to a project.

op_list_statusesA

List all work package statuses defined on the instance.

op_list_prioritiesA

List all priorities defined on the instance.

op_list_versionsB

List versions, optionally filtered to a project.

op_api_passthroughA

Escape hatch: call any GET endpoint under /api/v3 directly. Path should start with "/" (e.g. "/queries/42"). Use sparingly — prefer the typed tools above.

op_list_relationsC

List relations for a work package. Relation types: relates, duplicates, duplicated, blocks, blocked, precedes, follows, includes, partOf, requires, required.

op_get_relationC

Fetch a single relation by id.

op_create_relationA

Create a relation between two work packages. Types: relates, duplicates, blocks, precedes, follows, includes, partOf, requires.

op_delete_relationB

Delete a relation between work packages.

op_list_attachmentsB

List attachments on a work package.

op_get_attachmentA

Fetch attachment metadata by id. Set saveTo to download the file content to a local path and also return embedLocations showing where the file is referenced in the work package (description and comments).

op_upload_attachmentA

Upload a file from the local filesystem as an attachment on a work package. Provide the absolute path to the file. Optionally override the file name. Set embedIn to "comment" or "description" to also insert an image reference () into the work package.

op_delete_attachmentC

Delete an attachment. Destructive.

op_list_notificationsA

List in-app notifications for the current user. Common filters: "readIAN" ("=" "t"/"f"), "reason" ("=" "assigned"/"mentioned"/"watched").

op_get_notificationB

Fetch a single notification by id.

op_mark_notification_readC

Mark a single notification as read.

op_mark_all_notifications_readA

Mark all notifications as read for the current user.

op_list_watchersC

List users watching a work package.

op_add_watcherC

Add a user as a watcher to a work package.

op_remove_watcherB

Remove a user from watching a work package.

op_list_boardsA

List boards (Kanban-style) for a project. Boards are stored as grids scoped to /projects/{id}/boards.

op_get_boardA

Fetch a single board (grid) by id, including its widget/column configuration.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/OliverRhyme/openproject-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server