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
Инструменты были проиндексированы:
copy_documentвнешний мир

Копирует документ, дублируя его структуру, тело и содержащиеся рабочие элементы. Восстановление через create_document/update_document приводит к потере вложенных элементов. target_document_name должен быть свободен в целевом расположении — сначала вызовите list_documents. Целевой проект/пространство по умолчанию совпадает с исходным. link_original_items_with_role проверяется по перечислению workitem-link-role целевого проекта; remove_outgoing_links удаляет ссылки, перенесённые из исходного документа.

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

    Source document name.

  • dry_runboolean

    Preview payload without writing; guards still query Polarion.

  • link_original_items_with_rolestring | null

    Link each copied item back to its original with this workitem-link-role id (e.g. 'duplicates').

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

    Source project ID.

  • remove_outgoing_linksboolean | null

    Strip outgoing links from copied items (kept if omitted).

  • revisionstring | null

    Copy the source as of this revision (HEAD if omitted).

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

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

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

    New document name; must not already exist at the destination.

  • target_project_idstring | null

    Destination project (source project if omitted).

  • target_space_idstring | null

    Destination space (source space if omitted).

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.

Параметры
  • auto_suspectboolean | null

    Flag linked work items suspect on change.

  • custom_fieldsobject | null

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

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

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

  • dry_runboolean

    Preview payload without writing; guards still query Polarion.

  • home_page_contentstring | null

    Markdown body; converted to sanitized HTML.

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

    Polarion project ID.

  • rendering_layout_typesstring[] | null

    Work item type IDs the document will hold (e.g. ['softwarerequirement']); each gets a section layout.

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

    Space ID ('_default' = default space).

  • statusstring | null

    Initial workflow status (project default if omitted).

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

    Human-readable document title.

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

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

  • uses_outline_numberingboolean | null

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

create_document_attachmentsвнешний мир

Загружает от 1 до 10 локальных файлов как вложения в документ за один запрос. file_path считывается с локального диска серверным процессом — используйте абсолютные пути к читаемым файлам. file_name (по умолчанию: базовое имя file_path) становится идентификатором вложения; ссылайтесь на него в теле документа как attachment:{id} для update_document. Общий размер загрузки на один вызов ограничен 25 МиБ: сожмите или используйте портал Polarion для одного файла, превышающего размер, разбивайте превышающие размер пакеты на несолько вызовов. Чистое создание — ничто не заменяется. Загрузки нельзя удалить через этот API, поэтом сначала проверьте file_path и file_name. Имя файла, конфликтующее с другим элементом в том же вызове или с существующим вложением на документе, отклояет весь пакет — сначала проврьте list_document_attachments или выберите новое file_name. НЕ идемпотентна — повтор успешного вызова отклоняется как дубликат, а не молча объединяется.

Параметры
  • attachmentsobject[]обязательный

    Files to upload in one request.

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

    Document name within space_id.

  • dry_runboolean

    Preview payload without calling Polarion.

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

    Polarion project ID.

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

    Space ID ('_default' = default space).

create_document_commentsвнешний мир

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

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

    Comments to create in one request.

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

    Document name within space_id.

  • dry_runboolean

    Preview payload without writing; guards still query Polarion.

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

    Polarion project ID.

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

    Space ID ('_default' = default space).

create_test_record_attachmentsвнешний мир

Загружает 1-10 локальных файлов как вложения тестовой записи за один запрос. Для вложений документов используйте create_document_attachments, для вложений рабочих элементов используйте create_work_item_attachments. Координаты записи (project_id, test_run_id, test_case_id, iteration) соответствуют get_test_record - сначала проверьте через list_test_records. file_path читается с локального диска серверным процессом - используйте абсолютные пути к читаемым файлам. Общий размер загрузки за один вызов ограничен 25 МиБ: сжимайте или используйте портал Polarion для одного файла, превышающего размер, распределяйте превышающие размер пакеты по разным вызовам. attachment_ids в результате назначаются сервером ({test_case_id}_{file_name}) и отличаются от входного file_name. file_name, конфликтующий с другим элементом в том же вызове или с существующим вложением записи, отклоняет весь пакет - сначала проверьте list_test_record_attachments или выберите новое file_name. НЕ идемпотентен - повтор успешного вызова отклоняется как дубликат, а не бесшумно сливается.

Параметры
  • attachmentsobject[]обязательный

    Files to upload in one request.

  • dry_runboolean

    Preview payload without calling Polarion.

  • iterationinteger

    Record iteration number (0-based).

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

    Polarion project ID.

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

    Full test case work item ID 'project/WI-id' as returned by list_test_records.

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

    Test run ID (e.g. 'TR-2026-01').

create_test_recordsвнешний мир

Создает от 1 до 50 тестовых записей за один тестовый прогон, фиксируя, какие тест-кейсы были выполнены и с каким результатом. Используйте list_test_records для чтения этих записей; create_test_runs создает сам прогон. Атомарно: один некорректный элемент отклоняет весь пакет. Повторная отправка того же test_case_id начинает новую итерацию, а не заменяет её — используйте отдельные вызовы, а не дубликаты в одном пакете. Комментарий передается дословно в comment_format, без преобразования Markdown. Возвращает record_ids в виде полных 5-сегментных идентификаторов — никогда не сокращенных. Результат проверяется на соответствие перечислениям тестирования проекта; дефект должен ссылаться на существующий рабочий элемент. Некорректный test_case_id отклоняется Polarion — уточняйте через list_work_items.

Параметры
  • dry_runboolean

    Preview payload without writing; guards still query Polarion.

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

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

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

    Polarion project ID.

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

    Test run ID.

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.

Параметры
  • dry_runboolean

    Preview payload without writing; guards still query Polarion.

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

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

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

    Polarion project ID.

create_work_item_attachmentsвнешний мир

Загрузите от 1 до 10 локальных файлов в качестве вложений рабочих элементов за один запрос. Для вложений документов используйте create_document_attachments. file_path читается с локального диска серверным процессом — используйте абсолютные пути к читаемым файлам. Общий размер загрузки за один вызов ограничен 25 МБ: сжимайте или используйте портал Polarion для одного файла большого размера, разделяйте большие пакеты на несколько вызовов. attachment_ids в результате — назначаемые сервером идентификаторы с префиксом-счётчиком (например, 3-diagram.png), не предсказуемые по file_name, и также служат токенами ссылок workitemimg:{id} для тела описания рабочего элемента. Дублирующиеся значения file_name допускаются как в рамках одного вызова, так и по отношению к существующим вложениям: каждая загрузка создаёт новое вложение, никогда не вызывая конфликта. Рабочие элементы типа заголовка принимают загрузки, но портал скрывает раздел Вложения для элементов-заголовков: вложения там доступны только через API. НЕ идемпотентна: повтор успешного вызова молча создаёт дубликат; после неоднозначного сбоя проверьте с помощью list_work_item_attachments перед повтором.

Параметры
  • attachmentsobject[]обязательный

    Files to upload in one request.

  • dry_runboolean

    Preview payload without calling Polarion.

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

    Polarion project ID.

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

    Work item ID within project_id.

create_work_item_commentsвнешний мир

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

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

    Comments to create in one request.

  • dry_runboolean

    Preview payload without writing; guards still query Polarion.

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

    Polarion project ID.

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

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

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.

Параметры
  • dry_runboolean

    Preview payload without writing; guards still query Polarion.

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

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

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

    Source work item's project ID.

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

    Source work item ID.

create_work_itemsвнешний мир

Создаёт 1–50 рабочих элементов в одном проекте одним массовым запросом. Элементы создаются свободно плавающими: поместите их в документ с помощью move_work_item_to_document (этот инструмент не может). Атомарно: один некорректный элемент отклоняет весь пакет. Описание — Markdown (только при создании); последующие правки — это круговое преобразование сырого HTML через get_work_item(include_description_html=True) и update_work_items: форматы никогда не смешиваются. Таблицы Markdown получают встроенный стиль Polarion; абзац, начинающийся с 'Table:', сразу после таблицы становится нумерованным виджетом заголовка. Значения перечислений и ключи custom_fields проверяются при записи: сначала разрешите идентификаторы через list_work_item_enum_options. Возвращает идентификаторы новых рабочих элементов.

Параметры
  • dry_runboolean

    Preview payload without writing; guards still query Polarion.

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

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

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

    Polarion project ID.

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

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

Параметры
  • dry_runboolean

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

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

    Existing outgoing links to delete (1-50).

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

    Source work item's project ID.

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

    Source work item ID.

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).

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

    Document name within space_id.

  • include_home_page_content_htmlboolean

    Fill content_html with raw HTML for round-trip editing.

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

    Polarion project ID.

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

    Space ID ('_default' = default space).

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

Получает содержимое вложения документа для просмотра. PNG, JPEG, GIF и WebP возвращаются как изображение для просмотра; SVG возвращает свою разметку в виде текста. Любое другое расширение отклоняется до любого запроса. Используйте get_work_item_attachment_content для вложений рабочих элементов. Используйте list_document_attachments, чтобы узнать идентификаторы вложений, имена файлов и размеры.

Параметры
  • attachment_idstringобязательный

    Attachment id (bare filename token) from list_document_attachments.

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

    Document name within space_id.

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

    Polarion project ID.

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

    Space ID ('_default' = default space).

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

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

Параметры

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

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

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

Параметры

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

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

Получает полную информацию об одной итерации тест-кейса внутри тестового прогона: комментарий к выполнению и ревизию тест-кейса. Используйте list_test_records для сводок по всему прогону, get_test_run для метаданных прогона. comment_html содержит сырой HTML-комментарий записи; обычные текстовые комментарии возвращаются как есть. Если координаты не найдены, проверьте их через list_test_records.

Параметры
  • iterationinteger

    Record iteration number (0-based).

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

    Polarion project ID.

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

    Full test case work item ID 'project/WI-id' as returned by list_test_records.

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

    Test run ID (e.g. 'TR-2026-01').

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

Получает содержимое вложения тестовой записи для просмотра. PNG, JPEG, GIF и WebP возвращаются как просматриваемое изображение; SVG возвращает свой исходный код как текст. Другие расширения отклоняются до выполнения запроса. Используйте get_document_attachment_content или get_work_item_attachment_content для других доменов. Используйте list_test_record_attachments, чтобы узнать идентификаторы, имена файлов и размеры вложений.

Параметры
  • attachment_idstringобязательный

    Attachment id ({testCaseId}_{fileName} token) from list_test_record_attachments.

  • iterationinteger

    Record iteration number (0-based).

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

    Polarion project ID.

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

    Full test case work item ID 'project/WI-id' as returned by list_test_records.

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

    Test run ID (e.g. 'TR-2026-01').

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

Получает полные сведения об одном тестовом запуске по ID. Возвращает редактируемые поля (title, status, group_id, custom_fields), а также контекст только для чтения: выбор тест-кейсов, происхождение шаблона, автора и временные метки. include_home_page_content_html=True заполняет content_html необработанным HTML-телом отчёта; поле остаётся пустым, если use_report_from_template равно true. Никогда не возвращайте пустое тело (flag=False).

Параметры
  • include_home_page_content_htmlboolean

    Fill content_html with the run's raw HTML report body.

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

    Polarion project ID.

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

    Test run ID (e.g. 'TR-2026-01').

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

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

Параметры
  • include_description_htmlboolean

    Fill description_html with raw HTML for round-trip editing.

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

    Polarion project ID.

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

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

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

Получает содержимое вложения рабочего элемента для просмотра. PNG, JPEG, GIF и WebP возвращаются как изображение для просмотра; SVG возвращает исходную разметку в виде текста. Любое другое расширение отклоняется до выполнения запроса. Используйте get_document_attachment_content для вложений документов. Используйте list_work_item_attachments для получения идентификаторов вложений, имён файлов и размеров.

Параметры
  • attachment_idstringобязательный

    Attachment id (bare filename token) from list_work_item_attachments.

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

    Polarion project ID.

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

    Work item ID within project_id.

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

Перечисляет вложения документа в виде страницы с разбивкой на страницы. Только вложения документа, не вложения рабочих элементов. Возвращаемый id — это точный токен, на который ссылается тело как attachment:{id}; Polarion никогда не проверяет эту ссылку, поэтому тело может указывать на отсутствующий файл. Порядок определяется сервером и не может быть запрошен. Используйте read_document для контекста тела, list_documents для получения действительных идентификаторов пространства/документа.

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

    Document name within space_id.

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

    Polarion project ID.

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

    Space ID ('_default' = default space).

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

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

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

    Document name within space_id.

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

    Polarion project ID.

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

    Space ID ('_default' = default space).

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

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

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

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

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

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

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

    Polarion project ID.

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

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

Параметры
  • page_numberinteger
  • page_sizeinteger
  • project_idstringобязательный

    Polarion project ID.

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

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

Параметры
  • page_numberinteger
  • page_sizeinteger
  • querystring | null

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

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

Выводит вложения записи теста постранично. Только вложения тестовых записей — используйте list_work_item_attachments для файлов рабочих элементов, list_document_attachments для файлов документов. test_case_id — это полная форма 'project/WI-id' из list_test_records, а не короткий идентификатор рабочего элемента. Порядок определяется сервером и не запрашивается. Пустой результат означает, что у записи нет вложений; если не уверены, проверьте координаты run/test-case/iteration через list_test_records.

Параметры
  • iterationinteger

    Record iteration number (0-based).

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

    Polarion project ID.

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

    Full test case work item ID 'project/WI-id' as returned by list_test_records.

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

    Test run ID (e.g. 'TR-2026-01').

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

Выводит записи выполнения одного тестового запуска — одна строка на итерацию тестового случая. Для метаданных запуска используйте get_test_run. Отфильтруйте по результату (например, 'failed') или не указывайте для всех; у ещё не выполненных записей результат пуст. Lucene-запрос здесь НЕ поддерживается. Возвращает сводки — id — это точное значение, которое update_test_records принимает как record_id; defect_id ссылается на элемент работы с ошибкой.

Параметры
  • page_numberinteger
  • page_sizeinteger
  • project_idstringобязательный

    Polarion project ID.

  • resultstring | null

    Filter by result enum ID (e.g. 'passed', 'failed', 'blocked').

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

    Test run ID (e.g. 'TR-2026-01').

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

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

Параметры
  • page_numberinteger
  • page_sizeinteger
  • project_idstringобязательный

    Polarion project ID.

  • querystring | null

    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.

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

Выводит постранично список вложений элемента работы. Только вложения элемента работы. Для документов используйте list_document_attachments. Возвращаемый идентификатор это точный токен, на который ссылается тело как workitemimg:{id}; Polarion никогда не проверяет эту ссылку, поэтому тело может указывать на отсутствующий файл. Порядок задаётся сервером и не настраивается. Используйте list_work_items, чтобы найти допустимые идентификаторы.

Параметры
  • page_numberinteger
  • page_sizeinteger
  • project_idstringобязательный

    Polarion project ID.

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

    Work item ID within project_id.

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

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

Параметры
  • page_numberinteger
  • page_sizeinteger
  • project_idstringобязательный

    Polarion project ID.

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

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

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

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

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

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

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

    Polarion project ID.

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

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

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

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

Параметры
  • directionenum
  • page_numberinteger
  • page_sizeinteger
  • project_idstringобязательный

    Polarion project ID.

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

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

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 никогда не даёт совпадений).

Параметры
  • page_numberinteger
  • page_sizeinteger
  • project_idstringобязательный

    Polarion project ID.

  • querystring | null

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

move_work_item_from_documentвнешний мир

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

Параметры
  • dry_runboolean

    Preview payload without calling Polarion.

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

    Polarion project ID.

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

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

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, но НЕ сохраняется.

Параметры
  • dry_runboolean

    Preview payload without calling Polarion.

  • next_part_idstring | null

    Insert BEFORE this part ID; exclusive with previous_part_id.

  • previous_part_idstring | null

    Insert AFTER this part ID; exclusive with next_part_id.

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

    Polarion project ID.

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

    Target document name within target_space_id.

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

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

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

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

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

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

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

    Document name within space_id.

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

    Polarion project ID.

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

    Space ID ('_default' = default space).

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

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

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

    Document name within space_id.

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

    Polarion project ID.

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

    Space ID ('_default' = default space).

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

Прочитать один элемент работы с телом, отображаемым как 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.

Параметры
  • auto_suspectboolean | null

    Flag linked work items suspect on change.

  • custom_fieldsobject | null

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

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

    Document name within space_id.

  • dry_runboolean

    Preview payload without writing; guards still query Polarion.

  • home_page_content_htmlstring | null

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

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

    Polarion project ID.

  • rendering_layout_typesstring[] | null

    Work item type IDs that render their fields in this document; REPLACES the current set, so pass every type to keep.

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

    Space ID ('_default' = default space).

  • statusstring | null

    New status; prefer workflow_action for real transitions.

  • titlestring | null

    New document title.

  • typestring | null

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

  • uses_outline_numberingboolean | null

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

  • workflow_actionstring | null

    Workflow action ID.

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

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

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

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

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

    Document name within space_id.

  • dry_runboolean

    Preview payload without calling Polarion.

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

    Polarion project ID.

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

    New resolved state.

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

    Space ID ('_default' = default space).

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

Устанавливает результат, комментарий и/или ссылку на дефект для 1-50 записей тестов одного тестового прогона в одном массовом PATCH-запросе. Поля уровня прогона (title, status, group_id): используйте update_test_runs. Атомарно: один плохой элемент отклоняет весь пакет; никакие записи не изменяются. record_id должен быть скопирован дословно из list_test_records — никогда не разбивайте. comment передаётся как есть; Polarion хранит его как text/html независимо от отправленного comment_format, поэтому последующее чтение всегда показывает text/html. Возвращает только переданные record_ids — перечитайте через list_test_records. result должен быть значением, которое использует прогон (узнайте через list_test_records), иначе запись отклоняется; defect_id должен ссылаться на существующий work item, иначе запись отклоняется.

Параметры
  • dry_runboolean

    Preview payload without writing; guards still query Polarion.

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

    Per-record changes (1-50); unset fields stay unchanged.

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

    Polarion project ID.

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

    Test run ID (e.g. 'TR-2026-01').

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

Обновляет поля от 1 до 50 существующих тестовых прогонов за один массовый PATCH; неуказанные поля остаются без изменений. Атомарно: один некорректный элемент отклоняет весь пакет. Записываемые: title, status, group_id, custom_fields. status проверяется относительно перечислений тестирования проекта. custom_fields частичный; ключи проверяются на выборке существующих прогонов, значения не проверяются (у тестовых прогонов нет API опций). finishedOn управляется сервером — не устанавливается. Возвращает только идентификаторы — повторное чтение через list_test_runs.

Параметры
  • dry_runboolean

    Preview payload without writing; guards still query Polarion.

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

    Per-run changes (1-50); unset fields stay unchanged.

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

    Polarion project ID.

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

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

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

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

  • dry_runboolean

    Preview payload without calling Polarion.

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

    Polarion project ID.

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

    New resolved state.

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

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

update_work_item_linkвнешний мир

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

Параметры
  • dry_runboolean

    Preview payload without calling Polarion.

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

    Source work item's project ID.

  • revisionstring | null

    New revision pin; None = unchanged.

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

    Role id of the existing link.

  • suspectboolean | null

    New suspect flag; None = unchanged.

  • target_project_idstring | null

    Defaults to the source's project.

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

    Target work item ID.

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

    Source work item ID.

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.

Параметры
  • change_type_tostring | null

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

  • dry_runboolean

    Preview payload without writing; guards still query Polarion.

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

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

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

    Polarion project ID.

  • workflow_actionstring | null

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

Похожие MCP-сервера

3KniGHtcZ/codebeamer-mcp

3KniGHtcZ/codebeamer-mcp

MCP сервер для Codebeamer ALM — читает и создаёт проекты, трекеры и элементы через естественный язык. Управляйте требованиями, задачами и связями без лишних кликов. Полезен инженерам и тестировщика...

TypeScript9
Hypersequent/qasphere-mcp

Hypersequent/qasphere-mcp

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

TypeScript23
microsoft/azure-devops-mcp

microsoft/azure-devops-mcp

MCP сервер для Azure DevOps предоставляет AI-агентам доступ к проектам, рабочим элементам и вики. Рекомендуется удаленная версия, доступна и локальная. Инструмент упрощает взаимодействие с DevOps-данными через естественный язык.

TypeScript2009
suekou/mcp-notion-server

suekou/mcp-notion-server

MCP-сервер для интеграции Notion с AI-агентами: поиск, чтение, редактирование страниц и баз данных, создание элементов, выполнение запросов. Компактные ответы для AI-рабочих процессов. Для разработ...

TypeScript920
raalarcon9705/jira-mcp

raalarcon9705/jira-mcp

MCP-сервер для интеграции Jira и Atlassian с AI-ассистентами. Управляйте задачами, спринтами, комментариями и страницами Confluence из Claude, Cursor и других MCP-клиентов. Оптимизирован для токено...

TypeScript5
jen6/ticktick-mcp

jen6/ticktick-mcp

MCP-сервер для интеграции TickTick с AI-ассистентами. Управляйте задачами с фильтрацией по приоритету, тегам и датам. Создавайте, обновляйте и завершайте задачи. Полезен для автоматизации работы че...

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

Лука Никитин