devemberx/mcp-server-polarion

devemberx/mcp-server-polarion

от devemberx
MCP-сервер для Polarion ALM: AI-ассистенты читают документы, рабочие элементы и связи, а также создают, обновляют и реорганизуют их прямо в Polarion. Полезен инженерам для автоматизации работы с тр...

mcp-server-polarion

A Model Context Protocol (MCP) server for Polarion ALM. Lets AI assistants read and write Polarion content — documents, work items, test runs, traceability links, and comments — directly from your Polarion instance.

CI Publish PyPI Python 3.13+ License: MIT

mcp-server-polarion demo

Features

  • 28 tools covering read and write across documents, work items, test runs, traceability links, and comments.
  • Read — render documents as Markdown, search with Lucene or SQL, walk incoming/outgoing links, resolve enum options.
  • Write — create and update work items and documents, manage links, reorganize document structure, post comments.
  • Safe writes — every write tool supports dry_run, and pre-write guards validate fields, enum values, and link targets before hitting Polarion.
  • Built for LLMs — strict async, fully typed, pagination on every list tool, docstrings written as the assistant's manual.

Quickstart

Requires uv (see Prerequisites). Fastest path — Claude Code:

claude mcp add mcp-server-polarion \
  -e POLARION_URL=https://polarion.example.com \
  -e POLARION_TOKEN=your-personal-access-token \
  -- uvx mcp-server-polarion
create_documentвнешний мир

Создаёт новый документ Polarion в пространстве. module_name должен быть уникальным в пространстве (дубликат → HTTP 409) — сначала проверяйте list_documents. Тип/статус проверяются — неизвестные id вызывают ValueError с вариантами; ключи custom_fields проверяются по схеме типа документа. home_page_content — это Markdown, преобразуемый в безопасный HTML; блоки автоматически получают уникальные id. Таблицы Markdown получают нативное оформление Polarion; абзац, начинающийся с 'Table:' сразу после таблицы, становится виджетом нумерованной подписи. При редактировании после создания сырой HTML передаётся туда и обратно через get_document(include_homepage_content_html=True) ↔ update_document; рабочие элементы добавляются через move_work_item_to_document.

Создаёт новый документ Polarion в пространстве. module_name должен быть уникальным в пространстве (дубликат → HTTP 409) — сначала проверяйте list_documents. Тип/статус проверяются — неизвестные id вызывают ValueError с вариантами; ключи custom_fields проверяются по схеме типа документа. home_page_content — это Markdown, преобразуемый в безопасный HTML; блоки автоматически получают уникальные id. Таблицы Markdown получают нативное оформление Polarion; абзац, начинающийся с 'Table:' сразу после таблицы, становится виджетом нумерованной подписи. При редактировании после создания сырой HTML передаётся туда и обратно через get_document(include_homepage_content_html=True) ↔ update_document; рабочие элементы добавляются через move_work_item_to_document.

Параметры

  • project_idstringобязательный

    Polarion project ID.

  • space_idstringобязательный

    Space ID ('_default' = default space).

  • module_namestringобязательный

    Document identifier (e.g. 'MySpecV1'); unique within space_id, appears in the document URL.

  • titlestringобязательный

    Human-readable document title.

  • typestringобязательный

    Document type (e.g. 'req_specification', 'generic').

  • statusany

    Initial workflow status (project default if omitted).

  • home_page_contentany

    Markdown body; converted to sanitized HTML.

  • auto_suspectany

    Flag linked work items suspect on change.

  • uses_outline_numberingany

    Enable auto outline numbers (1, 1.1, ...).

  • custom_fieldsany

    Keyed by Polarion field ID (copy keys from a sibling document); rich-text values as {'type':'text/html','value':...}.

  • dry_runboolean

    Preview payload without writing; guards still query Polarion.

create_document_commentsвнешний мир

Создаёт один или несколько комментариев к документу в одном запросе. Ответ: укажите parent_comment_id — короткий идентификатор из list_document_comments (None = верхний уровень). Текст в формате 'text/html' передаётся без санитизации. Комментарий всегда создаётся от имени пользователя токена. НЕ идемпотентно — повторный запрос создаёт дубликат.

Создаёт один или несколько комментариев к документу в одном запросе. Ответ: укажите parent_comment_id — короткий идентификатор из list_document_comments (None = верхний уровень). Текст в формате 'text/html' передаётся без санитизации. Комментарий всегда создаётся от имени пользователя токена. НЕ идемпотентно — повторный запрос создаёт дубликат.

Параметры

  • project_idstringобязательный

    Polarion project ID.

  • space_idstringобязательный

    Space ID ('_default' = default space).

  • document_namestringобязательный

    Document name within ``space_id``.

  • commentsobject[]обязательный

    Comments to create in one request.

  • dry_runboolean

    Preview payload without calling Polarion.

create_test_runsвнешний мир

Создаёт от 1 до 50 тестовых запусков в одном проекте единым массовым запросом. Для каждого элемента обязательно указывать id (Polarion REST не генерирует его автоматически). Поля type/status проверяются по перечислениям тестирования проекта, а template_id — по существующим шаблонам (list_test_runs(templates=True)) — неизвестные id вызывают ValueError. Ключи custom_fields проверяются по выборке существующих запусков; значения custom_fields с перечисляемым типом не проверяются (у тестовых запусков нет API для опций). Атомарно: один плохой элемент отклоняет весь пакет; несовпадение количества id вызывает ошибку — перед повторной попыткой перезапросите list_test_runs.

Создаёт от 1 до 50 тестовых запусков в одном проекте единым массовым запросом. Для каждого элемента обязательно указывать id (Polarion REST не генерирует его автоматически). Поля type/status проверяются по перечислениям тестирования проекта, а template_id — по существующим шаблонам (list_test_runs(templates=True)) — неизвестные id вызывают ValueError. Ключи custom_fields проверяются по выборке существующих запусков; значения custom_fields с перечисляемым типом не проверяются (у тестовых запусков нет API для опций). Атомарно: один плохой элемент отклоняет весь пакет; несовпадение количества id вызывает ошибку — перед повторной попыткой перезапросите list_test_runs.

Параметры

  • project_idstringобязательный

    Polarion project ID.

  • itemsobject[]обязательный

    Test runs to create in one request (1-50).

  • dry_runboolean

    Preview payload without writing; guards still query Polarion.

create_work_item_commentsвнешний мир

Создаёт один или несколько комментариев к рабочому элементу в одном запросе. Ответ: установите parent_comment_id в короткий ID из list_work_item_comments (None = верхний уровень). Необязательный заголовок задаёт заголовок комментария. Текст 'text/html' отправляется без очистки. Комментарий всегда создаётся от имени пользователя токена. НЕ идемпотентно - повторный вызов создаёт дубликат.

Создаёт один или несколько комментариев к рабочому элементу в одном запросе. Ответ: установите parent_comment_id в короткий ID из list_work_item_comments (None = верхний уровень). Необязательный заголовок задаёт заголовок комментария. Текст 'text/html' отправляется без очистки. Комментарий всегда создаётся от имени пользователя токена. НЕ идемпотентно - повторный вызов создаёт дубликат.

Параметры

  • project_idstringобязательный

    Polarion project ID.

  • work_item_idstringобязательный

    Work item ID, e.g. 'MCPT-001'.

  • commentsobject[]обязательный

    Comments to create in one request.

  • dry_runboolean

    Preview payload without calling Polarion.

create_work_item_linksвнешний мир

Создаёт от 1 до 50 исходящих ссылок из одного исходного элемента работы атомарно. Роль и существование цели проверяются до POST - невалидные вызывают ValueError. По спецификации: target_project_id по умолчанию равен исходному, revision фиксируется (иначе HEAD), suspect флаги пересматриваются. 4xx (например, дубликат роли+цели → 409) откатывает весь пакет - повторно запросите list_work_item_links перед повторной попыткой. link_ids - это идентификаторы для удаления, порядок ввода. Фантомный успех: когда исходник находится в документе, move_work_item_to_document уже автоматически создал одну ссылку-заголовок; НОВАЯ ссылка с той же ролью получает 201, но НЕ сохраняется - проверьте через list_work_item_links.

Создаёт от 1 до 50 исходящих ссылок из одного исходного элемента работы атомарно. Роль и существование цели проверяются до POST - невалидные вызывают ValueError. По спецификации: target_project_id по умолчанию равен исходному, revision фиксируется (иначе HEAD), suspect флаги пересматриваются. 4xx (например, дубликат роли+цели → 409) откатывает весь пакет - повторно запросите list_work_item_links перед повторной попыткой. link_ids - это идентификаторы для удаления, порядок ввода. Фантомный успех: когда исходник находится в документе, move_work_item_to_document уже автоматически создал одну ссылку-заголовок; НОВАЯ ссылка с той же ролью получает 201, но НЕ сохраняется - проверьте через list_work_item_links.

Параметры

  • project_idstringобязательный

    Source work item's project ID.

  • work_item_idstringобязательный

    Source work item ID.

  • linksobject[]обязательный

    Links to create under the source work item (1-50).

  • dry_runboolean

    Preview payload without writing; guards still query Polarion.

create_work_itemsвнешний мир

Создавайте от 1 до 50 элементов работы в одном проекте одним массовым запросом. Стандартные перечисления (type/status/severity/priority) проверяются: неизвестные идентификаторы вызывают ValueError с перечнем допустимых значений. Ключи custom_fields проверяются по схеме типа. Атомарно: один некорректный элемент отклоняет всю пачку; несовпадение количества идентификаторов вызывает ошибку — перед повторной попыткой перезапросите list_work_items. Элементы создаются свободно плавающими; поместите их в документ с помощью move_work_item_to_document (этот инструмент не умеет). Описание — Markdown → очищенный HTML; последующие правки — это круговорот сырого HTML через get_work_item(include_description_html=True) ↔ update_work_items. Таблицы Markdown получают родной стиль Polarion; абзац, начинающийся с 'Table:' сразу после таблицы, превращается в виджет нумерованной подписи.

Создавайте от 1 до 50 элементов работы в одном проекте одним массовым запросом. Стандартные перечисления (type/status/severity/priority) проверяются: неизвестные идентификаторы вызывают ValueError с перечнем допустимых значений. Ключи custom_fields проверяются по схеме типа. Атомарно: один некорректный элемент отклоняет всю пачку; несовпадение количества идентификаторов вызывает ошибку — перед повторной попыткой перезапросите list_work_items. Элементы создаются свободно плавающими; поместите их в документ с помощью move_work_item_to_document (этот инструмент не умеет). Описание — Markdown → очищенный HTML; последующие правки — это круговорот сырого HTML через get_work_item(include_description_html=True) ↔ update_work_items. Таблицы Markdown получают родной стиль Polarion; абзац, начинающийся с 'Table:' сразу после таблицы, превращается в виджет нумерованной подписи.

Параметры

  • project_idstringобязательный

    Polarion project ID.

  • itemsobject[]обязательный

    Work items to create in one request (1-50).

  • dry_runboolean

    Preview payload without writing; guards still query Polarion.

delete_work_item_linksидемпотентныйвнешний мир

Удаляет 1–50 исходящих связей из одного исходного элемента работы. Только исходящие — удаляет обратную связь из её исходного элемента. Ссылки из list_work_item_links(direction="forward") или из ранее созданных. Устаревшие ссылки никогда не вызывают ошибку: предварительное чтение разделяет результат на deleted_link_ids / not_found_link_ids.

Удаляет 1–50 исходящих связей из одного исходного элемента работы. Только исходящие — удаляет обратную связь из её исходного элемента. Ссылки из list_work_item_links(direction="forward") или из ранее созданных. Устаревшие ссылки никогда не вызывают ошибку: предварительное чтение разделяет результат на deleted_link_ids / not_found_link_ids.

Параметры

  • project_idstringобязательный

    Source work item's project ID.

  • work_item_idstringобязательный

    Source work item ID.

  • linksobject[]обязательный

    Existing outgoing links to delete (1-50).

  • dry_runboolean

    Preview payload without deleting; the pre-read still queries Polarion.

get_documentтолько чтение

Получает метаданные документа: название/тип/статус/редакторы/пользовательские поля. Также возвращает нумерацию структуры + autoSuspect (для повторного прохода через update_document). Поля author_id/author_name (создатель) и last_updated_by_id/last_updated_by_name (последний редактор) связывают идентификатор машины с отображаемым именем; updated — временная метка последнего изменения. include_homepage_content_html=True заполняет content_html сырым HTML-кодом homePageContent — это обязательный источник для update_document(home_page_content_html=...). Это тело содержит только встроенный текст (заголовки / встроенные рабочие элементы лежат отдельно; read_document отображает всё). Никогда не передавайте обратно пустое тело (flag=False).

Получает метаданные документа: название/тип/статус/редакторы/пользовательские поля. Также возвращает нумерацию структуры + autoSuspect (для повторного прохода через update_document). Поля author_id/author_name (создатель) и last_updated_by_id/last_updated_by_name (последний редактор) связывают идентификатор машины с отображаемым именем; updated — временная метка последнего изменения. include_homepage_content_html=True заполняет content_html сырым HTML-кодом homePageContent — это обязательный источник для update_document(home_page_content_html=...). Это тело содержит только встроенный текст (заголовки / встроенные рабочие элементы лежат отдельно; read_document отображает всё). Никогда не передавайте обратно пустое тело (flag=False).

Параметры

  • project_idstringобязательный

    Polarion project ID.

  • space_idstringобязательный

    Space ID ('_default' = default space).

  • document_namestringобязательный

    Document name within space_id.

  • include_homepage_content_htmlboolean

    Fill content_html with raw HTML for round-trip editing.

get_html_recipesтолько чтение

Извлеките необходимые HTML-шаблоны для таблиц, подписей, ссылок и виджетов, создаваемых через update_work_items / update_document. Любой новый элемент <table>, нумерованная подпись, ссылка на рабочий элемент / перекрестную ссылку / вики-страницу или виджет оглавления / списка иллюстраций должны быть адаптированы из этих шаблонов: обычная ручная разметка отображается без стилей и ломает нумерацию. Также описаны нюансы macro-id и metadata-scope.

Извлеките необходимые HTML-шаблоны для таблиц, подписей, ссылок и виджетов, создаваемых через update_work_items / update_document. Любой новый элемент <table>, нумерованная подпись, ссылка на рабочий элемент / перекрестную ссылку / вики-страницу или виджет оглавления / списка иллюстраций должны быть адаптированы из этих шаблонов: обычная ручная разметка отображается без стилей и ломает нумерацию. Также описаны нюансы macro-id и metadata-scope.

Параметры

Без параметров.

get_sql_query_recipesтолько чтение

Получить готовые SQL-рецепты для префикса list_work_items SQL:(...). Вызывать перед написанием любого SQL-запроса (document scope, custom-field, traceability); адаптируйте рецепт вместо ручного написания JOIN. Включает схему таблицы.

Получить готовые SQL-рецепты для префикса list_work_items SQL:(...). Вызывать перед написанием любого SQL-запроса (document scope, custom-field, traceability); адаптируйте рецепт вместо ручного написания JOIN. Включает схему таблицы.

Параметры

Без параметров.

get_work_itemтолько чтение

Получить полные данные одного рабочего элемента по ID. include_description_html=True заполняет description_html сырым HTML — обязательный источник для description_html в update_work_items. Никогда не возвращайте пустое тело (flag=False).

Получить полные данные одного рабочего элемента по ID. include_description_html=True заполняет description_html сырым HTML — обязательный источник для description_html в update_work_items. Никогда не возвращайте пустое тело (flag=False).

Параметры

  • project_idstringобязательный

    Polarion project ID.

  • work_item_idstringобязательный

    Work item ID (e.g. 'MCPT-001').

  • include_description_htmlboolean

    Fill ``description_html`` with raw HTML for round-trip editing.

list_document_commentsтолько чтение

Вывести комментарии документа в виде плоской страницы. Ветки восстанавливаются через parent_comment_id (None = корневой) + child_comment_ids. Текст приводится дословно, без санитизации: при рендеринге считайте его недоверенным.

Вывести комментарии документа в виде плоской страницы. Ветки восстанавливаются через parent_comment_id (None = корневой) + child_comment_ids. Текст приводится дословно, без санитизации: при рендеринге считайте его недоверенным.

Параметры

  • project_idstringобязательный

    Polarion project ID.

  • space_idstringобязательный

    Space ID ('_default' = default space).

  • document_namestringобязательный

    Document name within ``space_id``.

  • page_sizeinteger
  • page_numberinteger
list_document_enum_optionsтолько чтение

Выводит допустимые id вариантов enum для поля документа заданного типа. Определите id enum здесь перед create_document / update_document — enum проверяются при записи, недопустимые id вызывают ошибку с этим набором. Неизвестный document_type молча откатывается к ~, поэтому сначала проверьте id типа.

Выводит допустимые id вариантов enum для поля документа заданного типа. Определите id enum здесь перед create_document / update_document — enum проверяются при записи, недопустимые id вызывают ошибку с этим набором. Неизвестный document_type молча откатывается к ~, поэтому сначала проверьте id типа.

Параметры

  • project_idstringобязательный

    Polarion project ID.

  • field_idstringобязательный

    e.g. 'status', 'type', or a custom field id.

  • document_typestringобязательный

    e.g. 'systemReqSpecification'; '~' = type-agnostic.

  • page_sizeinteger
  • page_numberinteger
list_documentsтолько чтение

Выводит список документов проекта. Возвращает space_id + document_name (входные данные для других инструментов работы с документами), а также тип, статус, временную метку обновления и отображаемые имена создателя (author_name) и последнего редактора (last_updated_by_name). Используйте get_document для получения ID автора/редактора. Discovery scan кэшируется на 60 с.

Выводит список документов проекта. Возвращает space_id + document_name (входные данные для других инструментов работы с документами), а также тип, статус, временную метку обновления и отображаемые имена создателя (author_name) и последнего редактора (last_updated_by_name). Используйте get_document для получения ID автора/редактора. Discovery scan кэшируется на 60 с.

Параметры

  • project_idstringобязательный

    Polarion project ID.

  • page_sizeinteger
  • page_numberinteger
list_projectsтолько чтение

Перечислите доступные проекты Polarion — источник идентификаторов проектов. Запрос Lucene допускает подстановочные знаки в конце (name:ILCU*); в начале — 400.

Перечислите доступные проекты Polarion — источник идентификаторов проектов. Запрос Lucene допускает подстановочные знаки в конце (name:ILCU*); в начале — 400.

Параметры

  • queryany

    Optional Lucene filter (e.g. 'name:ILCU*'); trailing wildcards only.

  • page_sizeinteger
  • page_numberinteger
list_test_runsтолько чтение

Список/поиск тестовых запусков в проекте. По умолчанию возвращает фактические экземпляры запусков; чтобы вместо них получить многоразовые шаблоны (blueprints), укажите templates=True. Фильтруйте с помощью Lucene-запроса (status:open, type:manual, HAS_VALUE:<field>) или опустите, чтобы получить всё. Фильтруйте по человеку через author.name (точное совпадение, в кавычках) - author.id не работает для тестовых запусков; сначала найдите полное имя на странице без фильтра.

Список/поиск тестовых запусков в проекте. По умолчанию возвращает фактические экземпляры запусков; чтобы вместо них получить многоразовые шаблоны (blueprints), укажите templates=True. Фильтруйте с помощью Lucene-запроса (status:open, type:manual, HAS_VALUE:<field>) или опустите, чтобы получить всё. Фильтруйте по человеку через author.name (точное совпадение, в кавычках) - author.id не работает для тестовых запусков; сначала найдите полное имя на странице без фильтра.

Параметры

  • project_idstringобязательный

    Polarion project ID.

  • queryany

    Optional Lucene filter (e.g. 'status:open', 'groupId:Release-2.5', 'author.name:"Jane Doe"', 'HAS_VALUE:<field>' to match runs with that field populated).

  • templatesboolean

    List template blueprints instead of actual run instances.

  • page_sizeinteger
  • page_numberinteger
list_work_item_commentsтолько чтение

Вывести комментарии к рабочему элементу в виде плоской страницы. Ветви восстанавливаются через parent_comment_id (None = корень) + child_comment_ids. Текст передаётся дословно, без очистки — считайте его ненадёжным при отрисовке.

Вывести комментарии к рабочему элементу в виде плоской страницы. Ветви восстанавливаются через parent_comment_id (None = корень) + child_comment_ids. Текст передаётся дословно, без очистки — считайте его ненадёжным при отрисовке.

Параметры

  • project_idstringобязательный

    Polarion project ID.

  • work_item_idstringобязательный

    Work item ID, e.g. 'MCPT-001'.

  • page_sizeinteger
  • page_numberinteger
list_work_item_enum_optionsтолько чтение

Выводит список допустимых идентификаторов вариантов перечисления для поля элемента работы заданного типа. Разрешайте идентификаторы перечислений здесь перед create_work_items / update_work_items — перечисления проверяются при записи, недопустимые идентификаторы вызывают ошибку с этим набором. Неизвестный work_item_type молча возвращается к ~, поэтому сначала проверьте идентификатор типа.

Выводит список допустимых идентификаторов вариантов перечисления для поля элемента работы заданного типа. Разрешайте идентификаторы перечислений здесь перед create_work_items / update_work_items — перечисления проверяются при записи, недопустимые идентификаторы вызывают ошибку с этим набором. Неизвестный work_item_type молча возвращается к ~, поэтому сначала проверьте идентификатор типа.

Параметры

  • project_idstringобязательный

    Polarion project ID.

  • field_idstringобязательный

    e.g. 'status', 'type', 'severity', 'priority', or a custom field id.

  • work_item_typestringобязательный

    e.g. 'task', 'requirement'; '~' = type-agnostic.

  • page_sizeinteger
  • page_numberinteger
list_work_item_linksтолько чтение

Выводит связи рабочего элемента, одно направление за вызов. Forward несет роль (parent, verifies, ...) и suspect; back — это запасной вариант Lucene, который отбрасывает роль (всегда None): восстановите ее через forward на источнике.

Выводит связи рабочего элемента, одно направление за вызов. Forward несет роль (parent, verifies, ...) и suspect; back — это запасной вариант Lucene, который отбрасывает роль (всегда None): восстановите ее через forward на источнике.

Параметры

  • project_idstringобязательный

    Polarion project ID.

  • work_item_idstringобязательный

    Work item ID (e.g. 'MCPT-001').

  • directionenum
    forwardback
  • page_sizeinteger
  • page_numberinteger
list_work_itemsтолько чтение

Список и поиск рабочих элементов в проекте. Lucene-запрос (type:requirement, title:SRS*; ведущие подстановочные символы — до 400) или опустите для выбора всех. Поля module и body text НЕ индексируются в Lucene — ограничивайте область видимости документом через SQL:(...) или read_document_parts, никогда не используйте module как Lucene-термин. SQL:(...) выполняет нативный SQL: сначала вызовите get_sql_query_recipes и адаптируйте рецепт (область документа, пользовательское поле, трассируемость), не пишите запрос вручную. Экранируйте ' как ''. Используйте LIKE только на верхнем уровне через INNER JOIN (внутри EXISTS он отвергается; C_DESCRIPTION LIKE никогда не даёт совпадений).

Список и поиск рабочих элементов в проекте. Lucene-запрос (type:requirement, title:SRS*; ведущие подстановочные символы — до 400) или опустите для выбора всех. Поля module и body text НЕ индексируются в Lucene — ограничивайте область видимости документом через SQL:(...) или read_document_parts, никогда не используйте module как Lucene-термин. SQL:(...) выполняет нативный SQL: сначала вызовите get_sql_query_recipes и адаптируйте рецепт (область документа, пользовательское поле, трассируемость), не пишите запрос вручную. Экранируйте ' как ''. Используйте LIKE только на верхнем уровне через INNER JOIN (внутри EXISTS он отвергается; C_DESCRIPTION LIKE никогда не даёт совпадений).

Параметры

  • project_idstringобязательный

    Polarion project ID.

  • queryany

    Optional Lucene filter (e.g. 'type:requirement', 'title:SRS*') OR a 'SQL:(...)' prefix for native SQL.

  • page_sizeinteger
  • page_numberinteger
move_work_item_from_documentвнешний мир

Открепляет элемент работы от его документа — ЕДИНСТВЕННЫЙ путь открепления. НЕ идемпотентно: для уже свободного элемента возвращает HTTP 400 — сначала проверьте, что элемент находится в документе (get_work_item: непустой space_id), и пропустите вызов, если элемент уже откреплён. Сам элемент сохраняется, его можно повторно прикрепить через move_work_item_to_document. Заголовки также можно откреплять.

Открепляет элемент работы от его документа — ЕДИНСТВЕННЫЙ путь открепления. НЕ идемпотентно: для уже свободного элемента возвращает HTTP 400 — сначала проверьте, что элемент находится в документе (get_work_item: непустой space_id), и пропустите вызов, если элемент уже откреплён. Сам элемент сохраняется, его можно повторно прикрепить через move_work_item_to_document. Заголовки также можно откреплять.

Параметры

  • project_idstringобязательный

    Polarion project ID.

  • work_item_idstringобязательный

    Work item ID (e.g. 'MCPT-042').

  • dry_runboolean

    Preview payload without calling Polarion.

move_work_item_to_documentвнешний мир

Перемещает существующий элемент работы в документ на заданную позицию. Путь attach: атомарно устанавливает модуль и вставляет часть. Заголовки отвергаются (HTTP 400) — добавляйте заголовки через update_document <hN>. Элемент, уже находящийся в документе, перемещается, а не копируется. Не более одного из previous_part_id (AFTER) / next_part_id (BEFORE); опустите оба, чтобы добавить в конец. Идентификаторы частей из read_document_parts. Автоматически создает одну ссылку на родительский заголовок; последующий create_work_item_links с той же ролью вернет 201, но НЕ сохраняется.

Перемещает существующий элемент работы в документ на заданную позицию. Путь attach: атомарно устанавливает модуль и вставляет часть. Заголовки отвергаются (HTTP 400) — добавляйте заголовки через update_document <hN>. Элемент, уже находящийся в документе, перемещается, а не копируется. Не более одного из previous_part_id (AFTER) / next_part_id (BEFORE); опустите оба, чтобы добавить в конец. Идентификаторы частей из read_document_parts. Автоматически создает одну ссылку на родительский заголовок; последующий create_work_item_links с той же ролью вернет 201, но НЕ сохраняется.

Параметры

  • project_idstringобязательный

    Polarion project ID.

  • work_item_idstringобязательный

    Work item ID (e.g. 'MCPT-042').

  • target_space_idstringобязательный

    Target space ID ('_default' = default space).

  • target_document_namestringобязательный

    Target document name within ``target_space_id``.

  • previous_part_idany

    Insert AFTER this part ID; exclusive with next_part_id.

  • next_part_idany

    Insert BEFORE this part ID; exclusive with previous_part_id.

  • dry_runboolean

    Preview payload without calling Polarion.

read_documentтолько чтение

Преобразуйте документ целиком в непрерывный Markdown — ЕДИНСТВЕННЫЙ способ читать тело. Перемежает заголовки, описания рабочих элементов и прозу. Результат синтеза: НИКОГДА не передавайте в update_document (якоря схлопнутся, заголовки осиротеют) — используйте обход через get_document(include_homepage_content_html=True). Для извлечения только метаданных используйте list_work_items SQL.

Преобразуйте документ целиком в непрерывный Markdown — ЕДИНСТВЕННЫЙ способ читать тело. Перемежает заголовки, описания рабочих элементов и прозу. Результат синтеза: НИКОГДА не передавайте в update_document (якоря схлопнутся, заголовки осиротеют) — используйте обход через get_document(include_homepage_content_html=True). Для извлечения только метаданных используйте list_work_items SQL.

Параметры

  • project_idstringобязательный

    Polarion project ID.

  • space_idstringобязательный

    Space ID ('_default' = default space).

  • document_namestringобязательный

    Document name within space_id.

  • page_sizeinteger
  • page_numberinteger
read_document_partsтолько чтение

Перечислите структурные части документа по порядку. Для работы со структурой используйте: идентификаторы частей (позиции для move_work_item_to_document), уровни заголовков, разметку Markdown для каждой части. Для простого чтения → read_document; для рабочих элементов документа → list_work_items.

Перечислите структурные части документа по порядку. Для работы со структурой используйте: идентификаторы частей (позиции для move_work_item_to_document), уровни заголовков, разметку Markdown для каждой части. Для простого чтения → read_document; для рабочих элементов документа → list_work_items.

Параметры

  • project_idstringобязательный

    Polarion project ID.

  • space_idstringобязательный

    Space ID ('_default' = default space).

  • document_namestringобязательный

    Document name within space_id.

  • page_sizeinteger
  • page_numberinteger
read_work_itemтолько чтение

Прочитать один элемент работы с телом, отображаемым как Markdown. get_work_item плюс описание в формате Markdown. Вывод синтеза (сворачивает якоря Polarion): НИКОГДА не передавать в update_work_items; вместо этого выполнять полный цикл через пару HTML.

Прочитать один элемент работы с телом, отображаемым как Markdown. get_work_item плюс описание в формате Markdown. Вывод синтеза (сворачивает якоря Polarion): НИКОГДА не передавать в update_work_items; вместо этого выполнять полный цикл через пару HTML.

Параметры

  • project_idstringобязательный

    Polarion project ID.

  • work_item_idstringобязательный

    Work item ID (e.g. 'MCPT-001').

update_documentидемпотентныйвнешний мир

Обновляет метаданные или тело документа Polarion. PATCH отправляет только переданные атрибуты (пропущенные сохраняются); последующий GET не выполняется. Перед обновлением получите документ через get_document. home_page_content_html никогда не очищается и не преобразуется: берите из get_document(include_homepage_content_html=True); блоки без атрибута id= получают его автоматически, полностью размеченное тело отправляется побайтово. Пустая строка отклоняется (оставляет заголовки сиротами) — передавайте '<p></p>' для почти пустого содержимого. Правила для тела: - Встроенные <h1>..<h4> автоматически создают рабочие элементы-заголовки — ЭТО единственный способ добавить заголовок. Для основного текста или рабочих элементов используйте create_work_items + move_work_item_to_document, НЕ этот инструмент. - Макрос polarion_wiki с name=module-workitem <div> оставляет модуль рабочего элемента не заданным — прикрепите его через move_work_item_to_document. - Конструкции, специфичные для Polarion (таблицы, подписи, ссылки, виджеты оглавления/списка иллюстраций, разрывы страниц), нужно адаптировать из шаблонов get_html_recipes, никогда не писать вручную. workflow_action должен использоваться вместе с минимум одним атрибутом (иначе 400). Неизвестный статус/тип вызывает ValueError; ключи custom_fields, не входящие в схему типа документа, отклоняются, значения НЕ проверяются — сначала уточните через list_document_enum_options.

Обновляет метаданные или тело документа Polarion. PATCH отправляет только переданные атрибуты (пропущенные сохраняются); последующий GET не выполняется. Перед обновлением получите документ через get_document. home_page_content_html никогда не очищается и не преобразуется: берите из get_document(include_homepage_content_html=True); блоки без атрибута id= получают его автоматически, полностью размеченное тело отправляется побайтово. Пустая строка отклоняется (оставляет заголовки сиротами) — передавайте '<p></p>' для почти пустого содержимого. Правила для тела: - Встроенные <h1>..<h4> автоматически создают рабочие элементы-заголовки — ЭТО единственный способ добавить заголовок. Для основного текста или рабочих элементов используйте create_work_items + move_work_item_to_document, НЕ этот инструмент. - Макрос polarion_wiki с name=module-workitem <div> оставляет модуль рабочего элемента не заданным — прикрепите его через move_work_item_to_document. - Конструкции, специфичные для Polarion (таблицы, подписи, ссылки, виджеты оглавления/списка иллюстраций, разрывы страниц), нужно адаптировать из шаблонов get_html_recipes, никогда не писать вручную. workflow_action должен использоваться вместе с минимум одним атрибутом (иначе 400). Неизвестный статус/тип вызывает ValueError; ключи custom_fields, не входящие в схему типа документа, отклоняются, значения НЕ проверяются — сначала уточните через list_document_enum_options.

Параметры

  • project_idstringобязательный

    Polarion project ID.

  • space_idstringобязательный

    Space ID ('_default' = default space).

  • document_namestringобязательный

    Document name within space_id.

  • titleany
  • statusany

    New status; prefer workflow_action for real transitions.

  • typeany

    New document type (e.g. 'req_specification').

  • home_page_content_htmlany

    New body as raw HTML from get_document(include_homepage_content_html=True); '' rejected; anchorless blocks get id= auto-stamped. New tables, captions, or other Polarion constructs: call get_html_recipes first and adapt a template.

  • auto_suspectany

    Flag linked work items suspect on change.

  • uses_outline_numberingany

    Enable auto outline numbers (1, 1.1, ...).

  • custom_fieldsany

    Partial; rich-text values as {'type':'text/html','value':...}.

  • workflow_actionany

    Workflow action ID.

  • dry_runboolean

    Preview payload without writing; guards still query Polarion.

update_document_commentидемпотентныйвнешний мир

Разрешить или повторно открыть одну ветку обсуждения документа. Только корневые комментарии (ответный комментарий возвращает 400) — выберите корневой id (parent_comment_id=None) из list_document_comments; разрешение корневого разрешает всю ветку. Идемпотентно.

Разрешить или повторно открыть одну ветку обсуждения документа. Только корневые комментарии (ответный комментарий возвращает 400) — выберите корневой id (parent_comment_id=None) из list_document_comments; разрешение корневого разрешает всю ветку. Идемпотентно.

Параметры

  • project_idstringобязательный

    Polarion project ID.

  • space_idstringобязательный

    Space ID ('_default' = default space).

  • document_namestringобязательный

    Document name within ``space_id``.

  • comment_idstringобязательный

    Short comment ID (e.g. 'c42' from list_document_comments).

  • resolvedbooleanобязательный

    New resolved state.

  • dry_runboolean

    Preview payload without calling Polarion.

update_work_item_commentидемпотентныйвнешний мир

Разрешить или повторно открыть один комментарий рабочего элемента. Только корневые комментарии (ответ на комментарий — 400) - выберите корневой id (parent_comment_id=None) из list_work_item_comments; разрешение корневого комментария переключает только его. Идемпотентно.

Разрешить или повторно открыть один комментарий рабочего элемента. Только корневые комментарии (ответ на комментарий — 400) - выберите корневой id (parent_comment_id=None) из list_work_item_comments; разрешение корневого комментария переключает только его. Идемпотентно.

Параметры

  • project_idstringобязательный

    Polarion project ID.

  • work_item_idstringобязательный

    Work item ID, e.g. 'MCPT-001'.

  • comment_idstringобязательный

    Short comment ID (e.g. 'c42' from list_work_item_comments).

  • resolvedbooleanобязательный

    New resolved state.

  • dry_runboolean

    Preview payload without calling Polarion.

update_work_item_linkвнешний мир

Установить suspect и/или revision на одну существующую исходящую ссылку. Определите ссылку через list_work_item_links(direction="forward") (role + target address one link). None = без изменений; требуется хотя бы один из suspect / revision. Одна ссылка на вызов. Опечатка в role возвращает 404.

Установить suspect и/или revision на одну существующую исходящую ссылку. Определите ссылку через list_work_item_links(direction="forward") (role + target address one link). None = без изменений; требуется хотя бы один из suspect / revision. Одна ссылка на вызов. Опечатка в role возвращает 404.

Параметры

  • project_idstringобязательный

    Source work item's project ID.

  • work_item_idstringобязательный

    Source work item ID.

  • rolestringобязательный

    Role id of the existing link.

  • target_work_item_idstringобязательный

    Target work item ID.

  • target_project_idany

    Defaults to the source's project.

  • suspectany

    New suspect flag; None = unchanged.

  • revisionany

    New revision pin; None = unchanged.

  • dry_runboolean

    Preview payload without calling Polarion.

update_work_itemsидемпотентныйвнешний мир

Обновляет поля у 1-50 существующих элементов работы одним массовым PATCH-запросом; поля, которые не указаны, остаются без изменений. Гиперссылки и `assignee_ids` для каждого элемента ЗАМЕНЯЮТ хранящиеся списки — чтобы добавить даже одну запись, сначала вызови `get_work_item` для целевого элемента, а затем передай все существующие записи плюс новую — всё, что опущено, молча удаляется. `description_html` — это сырой Polarion HTML, передаётся как есть; бери его из `get_work_item(include_description_html=True)`. Новые тела создаются через Markdown в `create_work_items`, форматы никогда не смешиваются. Чтобы добавить таблицу, подпись, ссылку или виджет, сначала вызови `get_html_recipes` и адаптируй его шаблон перед тем, как записывать `description_html`; разметка таблиц, написанная вручную, будет отклонена. `custom_fields` обновляется частично: ключи вне схемы типа отклоняются, значения НЕ проверяются — сначала уточни их через `list_work_item_enum_options`. Модуль здесь не задать — используй `move_work_item_to_document` / `move_work_item_from_document`. `workflow_action` / `change_type_to` применяются к КАЖДОМУ элементу; у каждого элемента должно быть хотя бы одно поле тела (иначе 400); `change_type_to` ограничивает статус/серьёзность/резолюцию целевым типом и сбрасывает статус. Неизвестные идентификаторы перечислений и отсутствующие/дублирующиеся `work_item_ids` вызывают `ValueError`. Атомарность: один плохой элемент отклоняет весь пакет. Возвращает только идентификаторы — при необходимости перечитай через `get_work_item`.

Обновляет поля у 1-50 существующих элементов работы одним массовым PATCH-запросом; поля, которые не указаны, остаются без изменений. Гиперссылки и `assignee_ids` для каждого элемента ЗАМЕНЯЮТ хранящиеся списки — чтобы добавить даже одну запись, сначала вызови `get_work_item` для целевого элемента, а затем передай все существующие записи плюс новую — всё, что опущено, молча удаляется. `description_html` — это сырой Polarion HTML, передаётся как есть; бери его из `get_work_item(include_description_html=True)`. Новые тела создаются через Markdown в `create_work_items`, форматы никогда не смешиваются. Чтобы добавить таблицу, подпись, ссылку или виджет, сначала вызови `get_html_recipes` и адаптируй его шаблон перед тем, как записывать `description_html`; разметка таблиц, написанная вручную, будет отклонена. `custom_fields` обновляется частично: ключи вне схемы типа отклоняются, значения НЕ проверяются — сначала уточни их через `list_work_item_enum_options`. Модуль здесь не задать — используй `move_work_item_to_document` / `move_work_item_from_document`. `workflow_action` / `change_type_to` применяются к КАЖДОМУ элементу; у каждого элемента должно быть хотя бы одно поле тела (иначе 400); `change_type_to` ограничивает статус/серьёзность/резолюцию целевым типом и сбрасывает статус. Неизвестные идентификаторы перечислений и отсутствующие/дублирующиеся `work_item_ids` вызывают `ValueError`. Атомарность: один плохой элемент отклоняет весь пакет. Возвращает только идентификаторы — при необходимости перечитай через `get_work_item`.

Параметры

  • project_idstringобязательный

    Polarion project ID.

  • itemsobject[]обязательный

    Per-item changes (1-50). hyperlinks/assignee_ids REPLACE the stored lists — read each item first and pass full lists, not deltas.

  • workflow_actionany

    Workflow action ID (e.g. 'close'); applies to EVERY item.

  • change_type_toany

    New work-item type for EVERY item; RESETS status.

  • dry_runboolean

    Preview payload without writing; guards still query Polarion.

Другие проверенные MCP-сервера

snyk/studio-mcp

snyk/studio-mcp

официальный

MCP-сервер Snyk интегрирует сканирование безопасности в AI-инструменты. Запускает SCA, SAST, IaC-проверки и возвращает уязвимости. Полезен для DevSecOps-пайплайнов. Управляется через `snyk mcp`.

Go53
TencentCloudBase/CloudBase-AI-ToolKit

TencentCloudBase/CloudBase-AI-ToolKit

официальный

MCP-сервер CloudBase соединяет AI IDE с облачной инфраструктурой Tencent Cloud, позволяя разработчикам развёртывать приложения одной командой. Он заполняет разрыв между генерацией кода и деплоем, автоматизируя настройку функций, баз данных и хостинга. Полезен для AI-программистов, которые хотят у...

TypeScript1059
vectorize-io/hindsight

vectorize-io/hindsight

официальный

MCP сервер Hindsight наделяет AI-агентов долговременной памятью — они учатся на опыте, а не просто запоминают диалоги. Использует биомиметические структуры данных для извлечения фактов и ментальных моделей, превосходя по точности RAG и графы знаний. Подходит для персонализации чат-ботов и создани...

Python18555
designcomputer/mysql_mcp_server

designcomputer/mysql_mcp_server

MCP инструмент для безопасной работы AI-агентов с MySQL. Выполняет SQL-запросы, возвращает схему таблиц и выборки данных. Помогает разработчикам и аналитикам контролировать доступ, избегая SQL-инъекций и используя SSL/TLS.

Python1333
GreptimeTeam/greptimedb-mcp-server

GreptimeTeam/greptimedb-mcp-server

официальный

GreptimeDB MCP-сервер для AI-ассистентов - выполняет SQL, TQL и RANGE-запросы к open-source базе наблюдаемости, объединяющей метрики, логи и трейсы. Встроенная безопасность: read-only, маскировка д...

Python28
DataEval/dingo

DataEval/dingo

официальный

MCP-сервер Dingo даёт AI-агентам доступ к комплексной оценке качества данных: проверка датасетов, детекция галлюцинаций, анализ RAG-систем. Инструмент полезен ML-инженерам для автоматической валидации данных через ассистентов.

Python727
© Каталог MCP, 2026. Все права защищены.
Проект не аффилирован с Anthropic и любыми упомянутыми продуктами.
Все названия и торговые марки принадлежат их владельцам.
Контакты для связи: hi@mcp-katalog.ru

Лука Никитин