返回市场
极地麦普服务器

极地麦普服务器

作者:peakflames14 星标更新:2025-10-19

项目介绍

Polarion MCP 服务器

此仓库包含用于 Polarion 应用生命周期管理(ALM)集成的模型上下文协议(MCP)服务器实现。

MCP 工具可用于 Polarion 工作项,包括:

  • get_text_for_workitems_by_id: 获取指定工作项ID的主要文本内容。
  • get_details_for_workitems: 获取指定工作项ID的详细信息,包括状态、类型、分配人和其他标准字段。
  • get_documents: 列出项目中的文档,可选地按标题过滤。
  • get_documents_by_space_names: 列出指定空间名称内的文档。
  • get_space_names: 列出项目中所有可用的空间名称。
  • get_sections_in_document: 获取文档中的章节列表。
  • get_section_content_in_document: 获取文档中特定章节的内容。
  • search_workitems_in_document: 根据文本条件在文档中搜索工作项。
  • get_configured_custom_fields: 根据当前项目的设置,获取为特定工作项类型ID配置的自定义字段列表。
  • list_configured_workitem_types: 列出当前项目设置中定义了自定义字段配置的所有工作项类型ID。
  • get_custom_fields_for_workitems: 获取给定工作项ID列表的指定自定义字段值。
  • get_revisions_list_for_workitem: 获取特定工作项的修订ID列表,从最新到最旧排序。
  • get_revisions_content_for_workitem: 获取工作项在不同修订中的内容,包括标题、状态、描述和其他标准字段。

项目

  • PolarionRemoteMcpServer: 基于流式HTTP或SSE的MCP服务器,适用于基于服务器的安装。
  • PolarionMcpServer: 基于控制台的MCP服务器,适用于本地工作站的Polarion集成。

通过Docker及Linux服务器运行(推荐)

  1. 在您的Linux服务器上,创建一个目录用于配置和日志文件:

    mkdir -p /opt/polarion-mcp-server
    cd /opt/polarion-mcp-server
    
  2. 拉取Docker镜像:

    docker pull peakflames/polarion-remote-mcp-server
    
  3. 创建一个定制化的/opt/polarion-mcp-server/appsettings.json文件以匹配您的Polarion配置:

    {
      "Logging": {
        "LogLevel": {
          "Default": "Information",
          "Microsoft.AspNetCore": "Warning"
        }
      },
      "AllowedHosts": "*",
      "PolarionProjects": [
           {
               "ProjectUrlAlias": "starlight", 
               "Default": true,
               "SessionConfig": { 
                   "ServerUrl": "https://polarion.int.mycompany.com/",
                   "Username": "shared_user_read_only",
                   "Password": "linear-Vietnam-FLIP-212824", 
                   "ProjectId": "Starlight_Main", 
                   "TimeoutSeconds": 120
               },
               "PolarionWorkItemTypes": [
                 {
                   "id": "requirement",
                   "fields": ["custom_field_1", "priority", "severity"]
                 },
                 {
                   "id": "defect",
                   "fields": ["defect_type", "found_in_build"]
                 }
               ]
           },
           {
               "ProjectUrlAlias": "octopus", 
               "Default": false,
               "SessionConfig": { 
                   "ServerUrl": "https://polarion.int.mycompany.com/",
                   "Username": "some_other_user",
                   "Password": "linear-Vietnam-FLIP-212824", 
                   "ProjectId": "octopus_gov", 
                   "TimeoutSeconds": 120
               }
           },
           {
               "ProjectUrlAlias": "grogu", 
               "Default": false,
               "SessionConfig": { 
                   "ServerUrl": "https://polarion-dev.int.mycompany.com/",
                   "Username": "vader",
                   "Password": "12345", 
                   "ProjectId": "grogu_boss", 
                   "TimeoutSeconds": 120
               }
           }
       ]
    }
    
  4. 运行Docker容器:

    docker run -d \
      --name polarion-mcp-server \
      -p 8080:8080 \
      -v appsettings.json:/app/appsettings.json \
      peakflames/polarion-remote-mcp-server
    
  5. 服务器现在应该正在运行。MCP客户端将使用特定于所需项目配置别名的URL进行连接:

    1. 流式HTTP传输:http://{{your-server-ip}}:8080/{ProjectUrlAlias}
    2. SSE传输:http://{{your-server-ip}}:8080/{ProjectUrlAlias}/sse
  6. 📢重要提示 - 不要运行服务器的副本实例,因为会话连接不会在副本之间共享。

配置选项(appsettings.json

服务器使用appsettings.json中的PolarionProjects数组来定义一个或多个Polarion实例配置。数组中的每个对象代表可通过唯一URL别名访问的不同配置。

顶级设置描述
PolarionProjects(数组)包含一个或多个Polarion项目配置对象。

每个项目配置对象:

设置描述必需默认值
ProjectUrlAlias用于连接URL(/{ProjectUrlAlias}/sse)中的唯一字符串,用于标识此配置。N/A
Default(布尔值)如果为true,则此配置将在客户端未指定ProjectUrlAlias时使用。仅能有一个条目为truefalse
SessionConfig(对象)包含此Polarion实例的具体连接详情。N/A
PolarionWorkItemTypes(数组,可选)定义在此项目中特定工作项类型的自定义字段。数组中的每个对象应具有一个id(字符串,工作项类型ID)和fields(字符串数组,自定义字段名称)。空列表

SessionConfig对象详情:

设置描述必需默认值
ServerUrlPolarion服务器的URL(例如:"https://polarion.example.com/")N/A
Username具有适当权限的Polarion用户名。N/A
PasswordPolarion用户的密码。(建议使用更安全的方法存储凭据)N/A
ProjectId要交互的实际Polarion项目ID。N/A
TimeoutSeconds连接超时时间(秒)。60

注意:强烈建议使用更安全的方法存储凭据(如用户密钥、Azure Key Vault等),而不是在appsettings.json中放置明文密码。

配置MCP客户端

配置Cline:

  1. 打开Cline的MCP设置UI
  2. 点击“远程服务器”标签
  3. 对于您appsettings.json中的每个ProjectUrlAlias,用户想要连接的:
{
  "mcpServers": {
    ...
    ...

    "Polarion Starling": {
      "autoApprove": [],
      "disabled": true,
      "timeout": 60,
      "url": "http://{{your-server-ip}}:8080/starlight/sse",
      "transportType": "sse"
    },
    "Polarion Octopus": {
      "autoApprove": [],
      "disabled": true,
      "timeout": 60,
      "url": "http://{{your-server-ip}}:8080/octopus/sse",
    "transportType": "sse"
    }
  ...
  ...
}
  1. 对于您想要连接的每个ProjectUrlAlias重复上述步骤。

配置Visual Studio Code:

在您的settings.json文件中添加以下配置:

"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": {}
    }
    // 为每个ProjectUrlAlias添加条目
}

配置Claude Desktop:

Claude Desktop目前不支持SSE,但您可以使用代理,并在claude_desktop_config.json文件中添加以下内容:

{
  "mcpServers": {
    "polarion-remote": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "http://{{your-server-ip}}:8080/{ProjectUrlAlias}/sse" // 替换{ProjectUrlAlias}
      ]
    }
    // 为每个ProjectUrlAlias添加条目,可能使用不同的键,如"polarion-starlight"
  }
}

本地运行(stdio)

对于本地开发或工作站使用,您可以运行基于stdio的MCP服务器:

  1. 发布页面下载适合您平台的可执行文件。
  2. 配置您的MCP客户端以使用可执行文件路径的stdio传输。

贡献

对于希望贡献或从源代码构建的开发者,请参阅CONTRIBUTING.md

许可证

详情见LICENSE