Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
OPENPROJECT_TIMEOUTNoRequest timeout in seconds12
OPENPROJECT_BASE_URLYesBase URL of your OpenProject instance, e.g. https://op.example.com
OPENPROJECT_API_TOKENYesPersonal API token
OPENPROJECT_LOG_LEVELNoCRITICAL, ERROR, WARNING, or INFOWARNING
OPENPROJECT_VERIFY_SSLNoVerify TLS certificatestrue
OPENPROJECT_MAX_RESULTSNoHard cap on total results returned by a tool100
OPENPROJECT_MAX_PAGE_SIZENoHard cap on results per request50
OPENPROJECT_ALLOWED_PROJECTSNoBackward-compatible alias for OPENPROJECT_ALLOWED_PROJECTS_READ
OPENPROJECT_DEFAULT_PAGE_SIZENoDefault results per page20
OPENPROJECT_ENABLE_BOARD_READNoBoards and viewstrue
OPENPROJECT_AUTO_CONFIRM_WRITENoSkip the preview step for all writesfalse
OPENPROJECT_ENABLE_ADMIN_WRITENoUser and group management (create/update/delete/lock users, create/update/delete groups)false
OPENPROJECT_ENABLE_BOARD_WRITENoBoard create/update/deletefalse
OPENPROJECT_HIDE_CUSTOM_FIELDSNoCustom field names or keys to omit; * wildcards supported
OPENPROJECT_AUTO_CONFIRM_DELETENoSkip the preview step for deletes; inherits OPENPROJECT_AUTO_CONFIRM_WRITE if not set
OPENPROJECT_ENABLE_PROJECT_READNoProjects, documents, news, wiki, lifecycletrue
OPENPROJECT_ENABLE_VERSION_READNoVersionstrue
OPENPROJECT_ENABLE_PROJECT_WRITENoProject create/update/delete, news, documents, gridsfalse
OPENPROJECT_ENABLE_VERSION_WRITENoVersion create/update/deletefalse
OPENPROJECT_HIDE_<ENTITY>_FIELDSNoComma-separated fields to omit from reads and reject on writes; * wildcards supported
OPENPROJECT_ALLOWED_PROJECTS_READNoReadable projects; comma-separated identifiers, names, or glob patterns; * allows all visible projects*
OPENPROJECT_ALLOWED_PROJECTS_WRITENoWritable projects; empty disables all project-scoped writes; always intersected with read scope
OPENPROJECT_ENABLE_MEMBERSHIP_READNoMemberships, roles, principalstrue
OPENPROJECT_ENABLE_MEMBERSHIP_WRITENoProject membership create/update/deletefalse
OPENPROJECT_ENABLE_WORK_PACKAGE_READNoWork packages, relations, attachments, time entriestrue
OPENPROJECT_ENABLE_WORK_PACKAGE_WRITENoWork-package create/update/delete, comments, relations, attachments, time entriesfalse

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_project_phase_definitionsA

List available project lifecycle phase definitions exposed by OpenProject.

get_project_phase_definitionA

Get a single project lifecycle phase definition by id.

get_instance_configurationA

Return instance-level OpenProject configuration and active feature flags.

list_statusesA

List all available work package statuses.

Read-only: statuses cannot be created or modified via the OpenProject API (Community Edition); configure them in the web admin UI.

get_statusB

Get a single work package status by id.

list_prioritiesA

List all available work package priorities.

get_priorityA

Get a single work package priority by id.

list_typesA

List all available work package types, optionally filtered by project.

Read-only: types cannot be created or modified via the OpenProject API (Community Edition); configure them in the web admin UI.

get_typeB

Get a single work package type by id.

get_cost_typeA

Get a cost type by id.

Cost types are entirely read-only in OpenProject's API (Community Edition) -- there is no create/update/delete endpoint, and no collection GET either (no list_cost_types tool exists because the endpoint does not exist upstream).

get_github_pull_requestA

Get a single GitHub pull request by its own id.

GitHub pull requests are read-only mirror rows synced by OpenProject's own GitHub App integration -- never creatable via this API. An empty or 404 result can mean either the pull request doesn't exist, or the GitHub App integration isn't configured on this instance; OpenProject's API does not distinguish these cases.

Unlike work-package-scoped lookups in this domain, this global lookup relies on OpenProject's own visibility check (whether the linked work package is visible to the API token), not on this MCP's OPENPROJECT_READ_PROJECTS allowlist -- the pull request payload carries no project link for this MCP to check against.

list_rolesA

List OpenProject roles visible to the current user.

select fields: id, name (see server instructions for select's general semantics). limit is capped at OPENPROJECT_MAX_PAGE_SIZE (default 50); pass the returned next_offset as the next call's offset to page past the cap.

get_current_userA

Return the currently authenticated user's profile.

list_actionsA

List API actions exposed by OpenProject.

select fields: id, url (see server instructions for select's general semantics).

limit is capped at OPENPROJECT_MAX_PAGE_SIZE (default 50); pass the returned next_offset as the next call's offset to page past the cap.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.7/5.0

Scored across 14 tools

Disambiguation4/5

Each tool targets a distinct resource (types, statuses, priorities, roles, phases, actions) with clear list/get separation, so an agent can tell them apart. A couple of outliers (get_cost_type with no list counterpart, get_github_pull_request which is unrelated to OpenProject's core domain) slightly muddy the surface but remain understandable.

Naming Consistency5/5

All 14 tools follow a strict verb_noun pattern using list_* and get_* prefixes (list_types/get_type, list_statuses/get_status, list_priorities/get_priority, etc.). The convention is applied uniformly with no camelCase or stylistic drift.

Tool Count5/5

14 tools is well within the ideal 3-15 range and each tool maps to a distinct reference-data endpoint. The count is proportionate to the narrow read-only scope the server declares.

Completeness2/5

The surface is entirely read-only reference data (types, statuses, priorities, roles, phases, actions) with no work package, project, or time-entry operations, which are the core of OpenProject's domain. Even within its own scope there are gaps: get_cost_type has no list counterpart, list_roles has no get_role, and no create/update/delete exists anywhere, creating dead ends for real project workflows.

Maintenance

ActivityActive
ResponsivenessWithin a week