Polarion MCP Server
The Polarion MCP Server exposes the Polarion ALM REST API as a tool-based interface (~210 operations) for AI assistants (Claude, GitHub Copilot, ChatGPT, etc.), supporting stdio, Streamable HTTP, and REST HTTP transports.
Work Items
Create, read, update, delete, and search work items (with query/sort/filter/pagination)
Manage linked work items, externally linked work items, OSLC resource links, feature selections, approvals, comments, attachments, and work records
Documents
Create, read, update, copy, branch, and merge documents
Manage document parts, attachments, and comments
Projects
Create, read, update, delete, move, and mark/unmark projects
Manage project enumerations, icons, test parameter definitions, and templates
Plans
Create, read, update, delete plans and manage plan relationships
Test Management
Manage test records, test record attachments, test runs, test run comments/attachments, test steps, and test step results
Pages & Attachments
Get, update, and manage wiki/rich pages and their attachments
Global Resources
Manage global enumerations, icons, roles, revisions, and pages
Jobs
Get job status and download job result files
Administration
Manage project templates, user groups, users, and roles
Additional features include cached project configuration, SDK documentation access, and guided prompts for work item operations.
Integrates with VS Code GitHub Copilot agent mode to provide Polarion REST API tools for managing work items and projects directly from the editor.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Polarion MCP Serverlist work items assigned to me in project ABC"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Polarion MCP
Product page: phillipboesger.github.io/polarion-mcp · Docker image:
ghcr.io/phillipboesger/polarion-mcp:latest
An open-source Model Context Protocol server that exposes 271 Polarion REST operations as AI-native tools — for VS Code Copilot, Claude, ChatGPT Custom GPTs, and any MCP-compatible client.
Table of Contents
Related MCP server: MCP-TS-DEMO
Features
Strict Type Validation — Zod schemas validate all inputs with Polarion query grammar support
Hardened Error Handling — Standardized MCP errors with automatic token sanitization
Pagination Helpers — Built-in utilities for easy result navigation
Security Checks — Validates required environment variables and never logs sensitive data
Multiple Transports — HTTP (Streamable MCP) and stdio support
CI/CD Ready — TypeScript checks and automated Docker publishing included
Requirements
Node.js v20+
Polarion Personal Access Token (PAT) with read permissions
Getting Started
Docker (recommended)
The image is published automatically to GitHub Container Registry on every push to main.
HTTP mode (VS Code Copilot, Claude.ai connector, any HTTP MCP client):
docker run -d \
-e API_BASE_URL=https://your-polarion.com/polarion/rest/v1 \
-e BEARER_TOKEN=your_polarion_pat \
-e MCP_HTTP_TOKEN=your_mcp_secret \
-p 3000:3000 \
--name polarion-mcp \
ghcr.io/phillipboesger/polarion-mcp:latestConnect your MCP client to http://localhost:3000/mcp with Authorization: Bearer your_mcp_secret.
stdio mode (VS Code, Claude Desktop):
docker run --rm -i \
-e API_BASE_URL=https://your-polarion.com/polarion/rest/v1 \
-e BEARER_TOKEN=your_polarion_pat \
ghcr.io/phillipboesger/polarion-mcp:latest \
node build/index.jsLocal development
npm install
cp .env.example .env
# edit .env — set API_BASE_URL, BEARER_TOKEN, MCP_HTTP_TOKEN
npm run dev:http # starts MCP HTTP transport on :3000See docs/examples.http for ready-to-run HTTP requests and docs/client-example.ts for a complete Node.js client example.
Available Tools
271 tools are generated from the Polarion OpenAPI spec. A few representative examples:
Tool | Description |
| List work items across a project |
| Fetch a specific work item by ID |
| List documents in a project |
| Get a specific document |
| Create new work items |
| Update an existing work item |
All tools accept an optional rawPath parameter to override REST endpoint paths without code changes — useful when your Polarion version uses non-standard paths.
The full list is generated from src/tools.ts via npm run generate-tools.
Configuration
Environment Variables
# Required
API_BASE_URL=https://your-polarion.com/polarion/rest/v1
BEARER_TOKEN=your_polarion_personal_access_token
# Required for HTTP MCP transport
MCP_HTTP_TOKEN=your_mcp_bearer_token # clients must send this to /mcp
# Optional
MCP_HTTP_PORT=3000 # port for MCP HTTP server (default 3000)
MCP_ALLOWED_HOSTS=your-host.com # DNS-rebinding protection (comma-separated)
NODE_TLS_REJECT_UNAUTHORIZED=0 # disable SSL verification for self-signed certsUsage Examples
Node.js client
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js";
const client = new Client({ name: "my-client", version: "1.0.0" });
await client.connect(
new StreamableHTTPClientTransport(new URL("http://localhost:3000/mcp"), {
requestInit: { headers: { Authorization: "Bearer your_mcp_secret" } },
})
);
const result = await client.callTool({
name: "getAllWorkItems",
arguments: { projectId: "MYPROJECT", query: "status:open", pageSize: 10 },
});Pagination
All list operations support pageSize and pageStartIndex parameters:
const page1 = await client.callTool({
name: "getAllWorkItems",
arguments: { projectId: "MYPROJECT", query: "status:open", pageSize: 50, pageStartIndex: 0 },
});Architecture
src/
config.ts — API base URL, token, and resource URL constants
server.ts — shared MCP server factory (transport-agnostic)
tools.ts — generated MCP tool definitions (271 tools)
executor.ts — tool call dispatcher
mcp-http-server.ts — Streamable HTTP MCP transport (remote clients)
http-server.ts — plain REST wrapper for ChatGPT Custom GPT Actions
index.ts — stdio entry point (local MCP clients)
polarion.ts — resource and prompt handlers
auth.ts — authentication helpers
utils.ts — shared utilitiesDesign notes:
Tools are auto-generated from the Polarion OpenAPI spec via
npm run regenerate.REST paths may differ across Polarion versions. Every tool supports
rawPathto override endpoints without code edits.No caching by design. Retries only on 429/5xx with short backoff.
Bearer token is automatically sanitized from all logs and error messages.
Security
Token Validation — MCP HTTP server refuses to start without
MCP_HTTP_TOKEN; every/mcprequest must supply it as a Bearer tokenCredential isolation — Polarion credentials (
API_BASE_URL,BEARER_TOKEN) stay server-side and are never exposed to MCP clientsDNS-rebinding protection — optional
MCP_ALLOWED_HOSTSallow-list validates theHostheader on every requestNo Secrets in Logs — tokens are automatically removed from all log output and error messages
Contributing
Contributions are welcome. To get started:
npm install
npm run typecheck # TypeScript check
npm run build # compile to build/
npm run dev:http # run locallyTo regenerate tools from the latest Polarion OpenAPI spec:
npm run regenerate # downloads spec, generates tools, builds, and testsPlease open an issue before submitting a larger change so we can discuss the approach. Pull requests should include a description of what changed and why.
Acknowledgements
🙏 Thanks to @Jonasdero, whose work is the foundation this MCP server builds on.
License
MIT © Phillip Bösger
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/phillipboesger/polarion-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server