{"id":27316921,"url":"https://github.com/peakflames/polarionmcpservers","last_synced_at":"2026-02-02T04:29:25.242Z","repository":{"id":287416490,"uuid":"964623257","full_name":"peakflames/PolarionMcpServers","owner":"peakflames","description":"MCP Server for Polarion","archived":false,"fork":false,"pushed_at":"2025-06-18T22:28:43.000Z","size":93,"stargazers_count":8,"open_issues_count":0,"forks_count":2,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-06-18T22:34:34.782Z","etag":null,"topics":["ai","alm","mcp","polarion"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/peakflames.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-04-11T14:08:56.000Z","updated_at":"2025-06-18T22:34:04.000Z","dependencies_parsed_at":"2025-06-18T22:39:09.230Z","dependency_job_id":null,"html_url":"https://github.com/peakflames/PolarionMcpServers","commit_stats":null,"previous_names":["schaveyt/polarionmcpservers"],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/peakflames/PolarionMcpServers","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/peakflames%2FPolarionMcpServers","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/peakflames%2FPolarionMcpServers/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/peakflames%2FPolarionMcpServers/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/peakflames%2FPolarionMcpServers/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/peakflames","download_url":"https://codeload.github.com/peakflames/PolarionMcpServers/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/peakflames%2FPolarionMcpServers/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265550405,"owners_count":23786564,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","alm","mcp","polarion"],"created_at":"2025-04-12T08:38:59.708Z","updated_at":"2026-01-17T01:56:26.709Z","avatar_url":"https://github.com/peakflames.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Polarion MCP Servers\n\nThis repository contains Model Context Protocol (MCP) server implementations for Polarion Application Lifecycle Management (ALM) integration.\n\nMCP Tools are available for Polarion work items, including:\n\n- `get_text_for_workitems_by_id`: Gets the main text content for specified WorkItem IDs.\n- `get_text_for_workitem_at_revision`: Gets the text content for a single WorkItem at a specific revision.\n- `get_details_for_workitems`: Gets detailed information for specified WorkItem IDs including status, type, assignee, custom fields, and linked work items.\n- `get_documents`: Lists documents in the project, optionally filtered by title.\n- `get_documents_by_space_names`: Lists documents within specified space names.\n- `get_space_names`: Lists all available space names in the project.\n- `get_sections_in_document`: Gets the list of sections in a document.\n- `get_section_content_for_document`: Gets the content of a specific section in a document.\n- `search_workitems_in_document`: Searches for WorkItems within a document based on text criteria.\n- `list_available_custom_fields_for_workitem_types`: Lists all available custom fields for specific WorkItem types.\n- `list_available_workitem_types`: Lists all WorkItem types available in the project.\n- `get_revisions_list_for_workitem`: Gets the list of revision IDs for a specific work item, ordered from newest to oldest.\n- `get_revisions_content_for_workitem`: Gets the content of a work item at different revisions, including title, status, description, and other standard fields.\n\n## Projects\n\n- **PolarionRemoteMcpServer**: (Streamable HTTP or SSE) based MCP server for server based installations\n- **PolarionMcpServer**: Console-based MCP server for Polarion integration for local workstation installations\n\n## Running via Docker \u0026 Linux Server (Recommended)\n\n1. From your Linux server, create a directory for your configuration and logs:\n\n   ```bash\n   mkdir -p /opt/polarion-mcp-server\n   cd /opt/polarion-mcp-server\n   ```\n\n1. Pull the Docker image:\n\n   ```bash\n   docker pull peakflames/polarion-remote-mcp-server\n   ```\n\n1. Create a tailored `/opt/polarion-mcp-server/appsettings.json` file to your Polarion configuration:\n\n   ```json\n   {\n     \"Logging\": {\n       \"LogLevel\": {\n         \"Default\": \"Information\",\n         \"Microsoft.AspNetCore\": \"Warning\"\n       }\n     },\n     \"AllowedHosts\": \"*\",\n     \"PolarionProjects\": [\n          {\n              \"ProjectUrlAlias\": \"starlight\", \n              \"Default\": true,\n              \"SessionConfig\": { \n                  \"ServerUrl\": \"https://polarion.int.mycompany.com/\",\n                  \"Username\": \"shared_user_read_only\",\n                  \"Password\": \"linear-Vietnam-FLIP-212824\", \n                  \"ProjectId\": \"Starlight_Main\", \n                  \"TimeoutSeconds\": 60\n              },\n              \"PolarionWorkItemTypes\": [\n                {\n                  \"id\": \"requirement\",\n                  \"fields\": [\"custom_field_1\", \"priority\", \"severity\"]\n                },\n                {\n                  \"id\": \"defect\",\n                  \"fields\": [\"defect_type\", \"found_in_build\"]\n                }\n              ]\n          },\n          {\n              \"ProjectUrlAlias\": \"octopus\", \n              \"Default\": false,\n              \"SessionConfig\": { \n                  \"ServerUrl\": \"https://polarion.int.mycompany.com/\",\n                  \"Username\": \"some_other_user\",\n                  \"Password\": \"linear-Vietnam-FLIP-212824\", \n                  \"ProjectId\": \"octopus_gov\", \n                  \"TimeoutSeconds\": 60\n              }\n          },\n          {\n              \"ProjectUrlAlias\": \"grogu\", \n              \"Default\": false,\n              \"SessionConfig\": { \n                  \"ServerUrl\": \"https://polarion-dev.int.mycompany.com/\",\n                  \"Username\": \"vader\",\n                  \"Password\": \"12345\", \n                  \"ProjectId\": \"grogu_boss\", \n                  \"TimeoutSeconds\": 60\n              }\n          }\n      ]\n   }\n   ```\n\n1. Run the Docker container:\n\n   ```bash\n   docker run -d \\\n     --name polarion-mcp-server \\\n     -p 8080:8080 \\\n     -v appsettings.json:/app/appsettings.json \\\n     peakflames/polarion-remote-mcp-server\n   ```\n\n1. The server should now be running. MCP clients will connect using a URL specific to the desired project configuration alias:\n   1. Streamable HTTP Transport: `http://{{your-server-ip}}:8080/{ProjectUrlAlias}`.\n   2. SSE Transport: `http://{{your-server-ip}}:8080/{ProjectUrlAlias}/sse`.\n2. 📢IMPORTANT - Do NOT run with replica instances of the server as the session connection will not be shared between replicas.\n\n### Configuration Options (`appsettings.json`)\n\nThe server uses a `PolarionProjects` array in `appsettings.json` to define one or more Polarion instance configurations. Each object in the array represents a distinct configuration accessible via a unique URL alias.\n\n| Top-Level Setting | Description                                                                 |\n| ----------------- | --------------------------------------------------------------------------- |\n| `PolarionProjects`  | (Array) Contains one or more Polarion project configuration objects.        |\n\n**Each Project Configuration Object:**\n\n| Setting                   | Description                                                                                                | Required | Default         |\n| ------------------------- | ---------------------------------------------------------------------------------------------------------- | -------- | --------------- |\n| `ProjectUrlAlias`         | A unique string used in the connection URL (`/{ProjectUrlAlias}/sse`) to identify this configuration.        | Yes      | N/A             |\n| `Default`                 | (boolean) If `true`, this configuration is used if the client connects without specifying a `ProjectUrlAlias`. Only one entry can be `true`. | No       | `false`         |\n| `SessionConfig`           | (Object) Contains the specific connection details for this Polarion instance.                              | Yes      | N/A             |\n| `PolarionWorkItemTypes`   | (Array, Optional) Defines custom fields to retrieve for specific WorkItem types within this project. Each object in the array should have an `id` (string, WorkItem type ID) and `fields` (array of strings, custom field names). | No       | Empty List      |\n\n**`SessionConfig` Object Details:**\n\n| Setting        | Description                                                         | Required | Default |\n| -------------- | ------------------------------------------------------------------- | -------- | ------- |\n| `ServerUrl`    | URL of the Polarion server (e.g., \"https://polarion.example.com/\")  | Yes      | N/A     |\n| `Username`     | Polarion username with appropriate permissions.                     | Yes      | N/A     |\n| `Password`     | Password for the Polarion user. **(Consider secure alternatives)**    | Yes      | N/A     |\n| `ProjectId`    | The *actual* ID of the Polarion project to interact with.           | Yes      | N/A     |\n| `TimeoutSeconds` | Connection timeout in seconds.                                      | No       | `60`    |\n\n*Note: It is strongly recommended to use more secure methods for storing credentials (like User Secrets, Azure Key Vault, etc.) rather than placing plain text passwords in `appsettings.json`.*\n\n## Configuring MCP Clients\n\n**To configure Cline:**\n\n1. Open Cline's MCP settings UI\n1. Click the \"Remote Servers\" tab\n1. For each `ProjectUrlAlias` in your `appsettings.json` that the user wants to connect to:\n\n  ```json\n  {\n    \"mcpServers\": {\n      ...\n      ...\n\n      \"Polarion Starling\": {\n        \"autoApprove\": [],\n        \"disabled\": true,\n        \"timeout\": 60,\n        \"url\": \"http://{{your-server-ip}}:8080/starlight/sse\",\n        \"transportType\": \"sse\"\n      },\n      \"Polarion Octopus\": {\n        \"autoApprove\": [],\n        \"disabled\": true,\n        \"timeout\": 60,\n        \"url\": \"http://{{your-server-ip}}:8080/octopus/sse\",\n      \"transportType\": \"sse\"\n      }\n    ...\n    ...\n  }\n   ```\n\n1. Repeat for each `ProjectUrlAlias` you want to connect to.\n\n**To configure Visual Studio Code:**\n\nAdd the following configuration to your settings.json file:\n\n```json\n\"servers\": {\n    \"polarion-starlight\": { // Use a descriptive key\n        \"type\": \"sse\",\n        \"url\": \"http://{{your-server-ip}}:8080/starlight/sse\", // Replace with your alias\n        \"env\": {}\n    },\n    \"polarion-octopus\": { \n        \"type\": \"sse\",\n        \"url\": \"http://{{your-server-ip}}:8080/octopus/sse\", // Replace with your alias\n        \"env\": {}\n    }\n    // Add entries for each ProjectUrlAlias\n}\n```\n\n**To Claude Desktop:**\n\nClaude Desktop currently doesn’t support SSE, but you can use a proxy with the following addition to the claude_desktop_config.json file:\n\n```json\n{\n  \"mcpServers\": {\n    \"polarion-remote\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"mcp-remote\",\n        \"http://{{your-server-ip}}:8080/{ProjectUrlAlias}/sse\" // Replace {ProjectUrlAlias}\n      ]\n    }\n    // Add entries for each ProjectUrlAlias, potentially using different keys like \"polarion-starlight\"\n  }\n}\n```\n\n## Running Locally (stdio)\n\nFor local development or workstation use, you can run the stdio-based MCP server:\n\n1. Download the appropriate executable for your platform from the [releases page](https://github.com/peakflames/PolarionMcpServers/releases)\n2. Configure your MCP client to use the stdio transport with the executable path\n\n## Contributing\n\nFor developers who want to contribute or build from source, see [CONTRIBUTING.md](CONTRIBUTING.md).\n\n## License\n\nSee [LICENSE](LICENSE) for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpeakflames%2Fpolarionmcpservers","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpeakflames%2Fpolarionmcpservers","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpeakflames%2Fpolarionmcpservers/lists"}