# mcp-server-polarion

An MCP server that lets an AI assistant read and modify Polarion ALM documents, work items and test runs.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 17
- Author: devemberx
- License: MIT · policy=link-only · description only; the file stays with the author
- Source: https://github.com/devemberx/mcp-server-polarion
- Updated: 2026-10-24
- HTML: https://affpapa.org/en/nevibecode/mcp/mcp-server-polarion

## What it does

Documents come back as Markdown, work items can be listed and updated, and test runs with their execution records get their own tools. Traceability links, comments and attachments are covered too.

Writes go through `dry_run` first, and guards check fields, enum values and link targets before anything reaches Polarion. Requests are queued under a rate cap you set, with retries on 429 and 5xx responses. That makes production data a reasonable target for an assistant.

You need Polarion 2506+ and `uv`. The instance address and a personal access token go into `POLARION_URL` and `POLARION_TOKEN`; skip them and the server has nothing to connect to. `POLARION_MAX_REQUESTS_PER_SECOND` controls the pacing.

## Requirements
- Needs: Python and uv (commands run via uvx)
- Environment variables: `POLARION_URL`, `POLARION_TOKEN`, `POLARION_MAX_REQUESTS_PER_SECOND` — keys and tokens: ask the human for the values, never commit them or put them in shared files.

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add --env POLARION_URL=<POLARION_URL> --env POLARION_TOKEN=<POLARION_TOKEN> --env POLARION_MAX_REQUESTS_PER_SECOND=<POLARION_MAX_REQUESTS_PER_SECOND> --transport stdio mcp-server-polarion -- uvx mcp-server-polarion
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from mcp-server-polarion <command>

### Codex

**Platform CLI**
```bash
codex mcp add mcp-server-polarion --env POLARION_URL=<POLARION_URL> --env POLARION_TOKEN=<POLARION_TOKEN> --env POLARION_MAX_REQUESTS_PER_SECOND=<POLARION_MAX_REQUESTS_PER_SECOND> -- uvx mcp-server-polarion
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from mcp-server-polarion <command>

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "mcp-server-polarion": {
            "command": "uvx",
            "args": [
                "mcp-server-polarion"
            ],
            "env": {
                "POLARION_URL": "<POLARION_URL>",
                "POLARION_TOKEN": "<POLARION_TOKEN>",
                "POLARION_MAX_REQUESTS_PER_SECOND": "<POLARION_MAX_REQUESTS_PER_SECOND>"
            }
        }
    }
}
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from mcp-server-polarion <command>

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "mcp-server-polarion": {
            "type": "stdio",
            "command": "uvx",
            "args": [
                "mcp-server-polarion"
            ],
            "env": {
                "POLARION_URL": "<POLARION_URL>",
                "POLARION_TOKEN": "<POLARION_TOKEN>",
                "POLARION_MAX_REQUESTS_PER_SECOND": "<POLARION_MAX_REQUESTS_PER_SECOND>"
            }
        }
    }
}
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from mcp-server-polarion <command>

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add -e POLARION_URL=<POLARION_URL> -e POLARION_TOKEN=<POLARION_TOKEN> -e POLARION_MAX_REQUESTS_PER_SECOND=<POLARION_MAX_REQUESTS_PER_SECOND> mcp-server-polarion uvx mcp-server-polarion
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from mcp-server-polarion <command>

## When to use it
- render a Polarion document as Markdown for review
- create several work items in one call
- update work item fields and status without clicking through the UI
- walk incoming and outgoing traceability links
- move a work item into another document section

## Example prompts
- Pull the requirements document from the project and outline its sections
- Create three work items of type requirement and attach them to the document
- Run the test run status update as `dry_run` and show me the diff

## Similar
- [REA](https://affpapa.org/en/nevibecode/mcp/rea.md) — MCP server · ★ 386989
- [GitHub](https://affpapa.org/en/nevibecode/mcp/github.md) — MCP server · ★ 33918
- [Netdata](https://affpapa.org/en/nevibecode/mcp/netdata.md) — MCP server · ★ 81115
- [browser-use](https://affpapa.org/en/nevibecode/mcp/browser-use.md) — MCP server · ★ 119160
- [Codebase Memory](https://affpapa.org/en/nevibecode/mcp/codebase-memory.md) — MCP server · ★ 47392
- [mcp-server](https://affpapa.org/en/nevibecode/mcp/mcp-server.md) — MCP server · ★ 43872

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
