Skip to main content
Glama
trof808

OpenProject MCP Server

by trof808

OpenProject MCP Server

MCP (Model Context Protocol) сервер для интеграции OpenProject с AI IDE, такими как Cursor.

Возможности

  • get_ai_tasks — получение списка задач, готовых к разработке AI

    • Возвращает задачи из колонок "Баги" и "Готово к разработке"

    • Фильтрует только задачи с флагом ai_dev = true

    • Возвращает: id, url, subject, description, type, status, priority, assignee

  • get_task — получение детальной информации о задаче по ID

Related MCP server: OpenProject MCP Server

Установка

1. Клонирование и установка зависимостей

cd /root/repos/openproject_mcp
pip install -e .

2. Настройка

Создайте файл .env на основе .env.example:

cp .env.example .env

Отредактируйте .env:

OPENPROJECT_URL=openproject_api_url
OPENPROJECT_API_KEY=your_api_key_here

3. Настройка Cursor

Добавьте в конфигурацию MCP серверов Cursor (~/.cursor/mcp.json).

Важно: После pip install -e . команда openproject-mcp становится доступна в PATH.

Вариант A: После установки через pip (рекомендуется)

{
  "mcpServers": {
    "openproject": {
      "command": "openproject-mcp",
      "env": {
        "OPENPROJECT_URL": "openproject_api_url",
        "OPENPROJECT_API_KEY": "your_api_key_here"
      }
    }
  }
}

Вариант B: Без установки (указать путь к Python)

{
  "mcpServers": {
    "openproject": {
      "command": "python",
      "args": ["-m", "openproject_mcp.server"],
      "cwd": "/path/to/openproject_mcp/src",
      "env": {
        "OPENPROJECT_URL": "openproject_api_url",
        "OPENPROJECT_API_KEY": "your_api_key_here"
      }
    }
  }
}

Вариант C: Через uv/uvx

{
  "mcpServers": {
    "openproject": {
      "command": "uvx",
      "args": ["--from", "/path/to/openproject_mcp", "openproject-mcp"],
      "env": {
        "OPENPROJECT_URL": "openproject_api_url",
        "OPENPROJECT_API_KEY": "your_api_key_here"
      }
    }
  }
}

Использование

После настройки в Cursor будут доступны инструменты:

Получить задачи для AI

Используй инструмент get_ai_tasks чтобы получить список задач готовых к разработке

Получить конкретную задачу

Используй инструмент get_task с task_id=2243 чтобы получить детали задачи

Конфигурация

Переменная

Описание

По умолчанию

OPENPROJECT_URL

URL OpenProject

openproject_api_url

OPENPROJECT_API_KEY

API ключ

-

OPENPROJECT_QUERY_ID_BUGS

ID query колонки "Баги"

1390

OPENPROJECT_QUERY_ID_READY

ID query колонки "Готово к разработке"

1378

OPENPROJECT_AI_DEV_FIELD

Имя кастомного поля ai_dev

customField2

Получение API ключа

  1. Войдите в OpenProject

  2. Перейдите в My AccountAccess tokens

  3. Создайте новый API токен

  4. Скопируйте токен в конфигурацию

Разработка

# Установка в режиме разработки
pip install -e ".[dev]"

# Запуск сервера напрямую
python -m openproject_mcp.server

Лицензия

MIT

Available Tools

2 tools
get_ai_tasksA

Get list of tasks ready for AI development from OpenProject. Returns tasks from 'Баги' and 'Готово к разработке' columns that have ai_dev flag set to true. Each task includes: id, url, subject, description, type, status, priority, assignee.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the burden of behavioral disclosure. The description explains what data is returned and the filtering criteria, but does not mention whether the operation is read-only, permissions required, pagination, or rate limits. Given the 'get' prefix it is likely safe, but more clarity would improve transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single paragraph of three sentences, all relevant and front-loaded. It is concise but could be slightly more structured (e.g., bullet points for output fields). No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (no parameters, no output schema), the description is complete. It covers what the tool does, the criteria for selection, and the specific fields included in each task. No additional context is needed for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the schema is trivial. The description adds value beyond the schema by explaining the output fields and filtering conditions. Baseline for 0 parameters is 4, which is appropriate here.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the tool retrieves tasks ready for AI development, specifying source columns ('Баги' and 'Готово к разработке') and a required flag (ai_dev=true). This clearly distinguishes it from the sibling 'get_task', which likely retrieves a single task by ID.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly indicates when to use this tool (for tasks flagged for AI development). It does not explicitly state when not to use it or provide alternatives to sibling tools, but the context strongly implies use cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_taskB

Get detailed information about a specific task by its ID. Returns full task details including description, status, assignee, etc.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYesThe work package (task) ID in OpenProject

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It indicates the tool retrieves data (read operation) and lists some return fields but does not disclose side effects, authentication needs, or error behaviors.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the primary action, and contains no superfluous information. Every part is relevant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one param, no output schema), the description sufficiently covers its purpose and return fields. Minor gaps exist regarding error handling, but overall it is adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a description for the only parameter. The description's mention of 'by its ID' adds minimal value beyond the schema's 'The work package (task) ID in OpenProject'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Get detailed information') and the resource ('a specific task by its ID'), and mentions returned fields. However, it does not explicitly distinguish from the sibling tool 'get_ai_tasks', missing a direct differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives (e.g., get_ai_tasks). It does not state prerequisites, exclusions, or context for usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 2 tool updatesv0.1.0
    • First observedget_ai_tasks
    • First observedget_task

TDQS

A3.5/5.0
Disambiguation5/5

The two tools have clearly distinct purposes: one retrieves a single task by ID, the other lists filtered tasks based on specific criteria. No overlap in functionality.

Naming Consistency5/5

Both tool names follow a consistent 'get_noun' snake_case pattern, making them predictable and easy to understand.

Tool Count2/5

With only two tools for a project management server, the count is too low. A typical server for this domain would require additional tools for CRUD operations and broader querying.

Completeness1/5

The tool surface is severely incomplete: it lacks any create, update, or delete operations, and fails to support common workflows like listing all tasks or searching by other criteria.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

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/trof808/openproject_api_mcp'

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