OpenProject MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@OpenProject MCP Servershow me the tasks ready for AI development"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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_here3. Настройка 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 чтобы получить детали задачиКонфигурация
Переменная | Описание | По умолчанию |
| URL OpenProject |
|
| API ключ | - |
| ID query колонки "Баги" |
|
| ID query колонки "Готово к разработке" |
|
| Имя кастомного поля ai_dev |
|
Получение API ключа
Войдите в OpenProject
Перейдите в My Account → Access tokens
Создайте новый API токен
Скопируйте токен в конфигурацию
Разработка
# Установка в режиме разработки
pip install -e ".[dev]"
# Запуск сервера напрямую
python -m openproject_mcp.serverЛицензия
MIT
Available Tools
2 toolsget_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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | The work package (task) ID in OpenProject |
TDQS
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.
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.
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.
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.
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.
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.
2 tool updates
v0.1.0- First observed
get_ai_tasks - First observed
get_task
TDQS
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.
Both tool names follow a consistent 'get_noun' snake_case pattern, making them predictable and easy to understand.
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.
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
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
Task management for people and AI agents, with scoped OAuth access to issues, projects, and docs.
130- AurentiaOAuthfr.aurentia
Your Aurentia workspace — projects, CRM, tasks, deliverables — in Claude, Cursor or any MCP client.
- OpenOakOAuthorg.openoak
Secure AI access to OpenOak tasks, notes, and Kanban boards.
Direct access to Cypress tests results and accessibility reports in your AI workflow.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to manage projects through OpenProject's API, providing complete project management capabilities including work packages, tasks, and team collaboration features.-
- AlicenseBqualityDmaintenanceEnables AI assistants to manage OpenProject work packages, projects, and time tracking. It provides comprehensive tools for creating, updating, and querying tasks and project metadata through the OpenProject API.11421MIT
- AlicenseNot gradedqualityDmaintenanceIntegrates with EasyProject API to manage projects, tasks, users, time tracking, and reporting via MCP protocol in editors like Cursor AI.171MIT
- AlicenseNot gradedqualityDmaintenanceEnables LLM applications to interact with OpenProject for project management, work package tracking, and task creation.76MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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