get_text_for_workitems_by_idLABSCO SUMMARY
Aliases turn multi-instance Polarion into one deployment.
Each project or instance gets its own URL alias, so a client points at /starlight or /octopus and reaches exactly that configuration — one container, several Polarion servers, no per-team install. Two operational limits stated up front: do not run replicas, because the Polarion session is not shared across them, and the tools are read-oriented, which is the right posture for a requirements system.
What it is
Two MCP server builds for Polarion ALM: a Streamable HTTP/SSE server for shared installations and a console server for a single workstation. Both read work items and documents from Polarion — text, details, custom fields, links, document sections and revision history. Each Polarion instance you configure gets a URL alias, and clients connect to /{ProjectUrlAlias} to reach that one.
What you get
- Work item text pulled by ID, or at a specific revision —
get_text_for_workitems_by_id,get_text_for_workitem_at_revision - Full work item detail including status, type, assignee, custom fields and linked work items —
get_details_for_workitems - Documents listed for the project, filtered by title or scoped to named spaces, plus the project's space list —
get_documents,get_documents_by_space_names,get_space_names - Document structure: the sections in a document and the content of one section —
get_sections_in_document,get_section_content_for_document - Text search for work items inside a document —
search_workitems_in_document - The project's work item types and the custom fields available per type —
list_available_workitem_types,list_available_custom_fields_for_workitem_types - Revision history: the revision IDs for a work item newest-first, and the content at each —
get_revisions_list_for_workitem,get_revisions_content_for_workitem - A REST API alongside MCP, plus a health check at
/api/healthand API documentation at/scalar/v1
Requirements
A Polarion server and an account with appropriate permissions. The recommended deployment is Docker: pull peakflames/polarion-remote-mcp-server, mount an appsettings.json, and publish port 8080. Each entry in the PolarionProjects array carries a ProjectUrlAlias, a SessionConfig with ServerUrl, Username, Password, ProjectId and an optional TimeoutSeconds (default 60), and an optional PolarionWorkItemTypes list naming the custom fields to retrieve per type. Set POLARION_PASSWORD in the environment to override the password for every configured project and keep it out of the config file — the README recommends this over plain text. Clients connect over Streamable HTTP at http://host:8080/{ProjectUrlAlias} or SSE at the same path plus /sse; Claude Desktop reaches it through mcp-remote. REST endpoints require an X-API-Key header matching a configured consumer with the polarion:read scope, while the MCP endpoints, health checks and API docs do not. Do not run replicas — the session connection is not shared between them.
Setup effort
Follow the published steps — mkdir -p /opt/polarion-mcp-server && cd /opt/polarion-mcp-server
USE CASES
Answering a question from the requirements without opening Polarion
Search the document for matching work items, then pull their text and detail including custom fields and links.
Working out when a requirement changed
List the revisions for the work item newest-first, then read its content at the revisions either side of the change.
Summarising one section of a large specification
List the document's sections and pull only the section you need instead of the whole document.
Finding out what a project can even store
List the work item types and the custom fields available for each before writing a query that assumes a field exists.
13 tools
Listed in project docs. Your client may show a different list.
get_text_for_workitem_at_revisionget_details_for_workitemsget_documentsget_documents_by_space_namesget_space_namesget_sections_in_documentget_section_content_for_documentsearch_workitems_in_documentlist_available_custom_fields_for_workitem_typeslist_available_workitem_typesget_revisions_list_for_workitemget_revisions_content_for_workitemBEFORE YOU INSTALL
What to know first
Tools you get
13 tools named in the project's documentation. Every tool gets, lists or searches; there is no write, and the only documented REST scope is polarion:read. The repository ships an HTTP server and a stdio server documented with one tool list.
Requires
- Docker on the machine that runs the server
- A Polarion user and password, set in the server's appsettings.json or passed to the container as POLARION_PASSWORD
INSTALLATION
Connect your client
Server setup
mkdir -p /opt/polarion-mcp-server && cd /opt/polarion-mcp-server
docker pull peakflames/polarion-remote-mcp-servercreate /opt/polarion-mcp-server/appsettings.json with your PolarionProjects entries
docker run -d --name polarion-mcp-server -p 8080:8080 -v /opt/polarion-mcp-server/appsettings.json:/app/appsettings.json peakflames/polarion-remote-mcp-serverpoint the MCP client at http://<YOUR_SERVER_IP>:8080/<YOUR_PROJECT_URL_ALIAS> (or /sse)
MCP Clients
Cline
{
"mcpServers": {
"Polarion Starling": {
"type": "sse",
"autoApprove": [],
"disabled": false,
"timeout": 60,
"url": "http://<YOUR_SERVER_IP>:8080/starlight/sse",
"transportType": "sse"
},
"Polarion Octopus": {
"type": "sse",
"autoApprove": [],
"disabled": false,
"timeout": 60,
"url": "http://<YOUR_SERVER_IP>:8080/octopus/sse",
"transportType": "sse"
}
}
}starlight and octopus are the example ProjectUrlAlias values from the README; use your own aliases from appsettings.json, one entry each. The README's sample sets "disabled": true — it is false here so the servers start.
The Polarion password belongs to the server, not to these client blocks: put it in SessionConfig.Password in appsettings.json, or keep it out of the file by adding -e POLARION_PASSWORD=your-secret-password to the docker run line (it overrides the file for every project).
VS Code
{
"servers": {
"polarion-starlight": {
"type": "sse",
"url": "http://<YOUR_SERVER_IP>:8080/starlight/sse",
"env": {}
},
"polarion-octopus": {
"type": "sse",
"url": "http://<YOUR_SERVER_IP>:8080/octopus/sse",
"env": {}
}
}
}The Polarion password belongs to the server, not to these client blocks: put it in SessionConfig.Password in appsettings.json, or keep it out of the file by adding -e POLARION_PASSWORD=your-secret-password to the docker run line (it overrides the file for every project).
Claude Desktop — mcp-remote
{
"mcpServers": {
"polarion-remote": {
"command": "npx",
"args": [
"mcp-remote",
"http://<YOUR_SERVER_IP>:8080/<YOUR_PROJECT_URL_ALIAS>/sse"
]
}
}
}The Polarion password belongs to the server, not to these client blocks: put it in SessionConfig.Password in appsettings.json, or keep it out of the file by adding -e POLARION_PASSWORD=your-secret-password to the docker run line (it overrides the file for every project).