一个基于模型上下文协议(MCP)的服务器,提供Polarion ALM与AI助手如Microsoft Copilot Studio和Cline之间的无缝集成。该服务器使用FastMCP 2.10.6构建,使AI代理能够与Polarion项目、工作项、测试运行、文档等进行交互。
pyproject.toml并遵循最佳实践克隆仓库
git clone https://github.com/mmerah/PolarionMcp.git
cd PolarionM
配置Polarion凭证
在项目根目录创建.env文件:
cp .env.example .env
使用您的凭证编辑.env:
POLARION_URL=https://your-polarion-instance.com/polarion
POLARION_USER=your-username
POLARION_TOKEN=your-personal-access-token
运行服务器
使用方便脚本(推荐):
chmod +x run_server.sh
./run_server.sh
或手动:
python -m venv .venv
source .venv/bin/activate # 在Windows上:.venv\Scripts\activate
pip install -e .
python -m mcp_server.main
服务器在http://0.0.0.0:8000启动,MCP端点位于/mcp/
服务器现在通过HTTP包装器暴露每个MCP工具,因此您可以将其连接到自定义GPT,通过GPT操作。
https://<your-domain>/openapi.json。/actions/...下,并返回JSON信封。OpenAPI规范(openapi.yaml / openapi.json)描述了每条路由,并镜像现有的MCP工具。agent_instructions.md(完整版)和agent_instructions_simple.md(快速参考)。在工具更改后使用python -m mcp_server.docgen重新生成。您可以在本地验证设置:
curl http://localhost:8000/openapi.json | jq '.paths | keys'
curl http://localhost:8000/actions/projects
服务器支持可选配置文件,提供:
要快速从Polarion XML导出配置自定义字段,请参阅XML_PARSER.md。
复制示例配置:
cp polarion_config.example.yaml polarion_config.yaml
编辑polarion_config.yaml以定义您的项目:
projects:
# 普通项目
webstore: # 您的别名
id: WEBSTORE_V3 # 实际Polarion ID
work_item_types:
- systemRequirement
- specification
- defect
default_queries:
open_bugs: "type:defect AND status:open"
my_items: "assignee.id:$current_user"
# 基于计划的项目(用于发布/迭代)
releases:
id: RELEASES_PROJECT
is_plan: true # 标记为计划项目
work_item_types:
- feature
- userStory
- task
在所有工具调用中使用别名:
# 而不是:get_project_info("WEBSTORE_V3")
# 使用:get_project_info("webstore")
# 命名查询自动工作:
search_workitems("webstore", "query:open_bugs")
list_projects:显示所有配置的项目别名(指示哪些是计划项目)get_project_types:获取项目的配置工作项类型get_named_queries:列出项目的可用命名查询project_alias接受别名(例如,webstore)和实际ID(例如,MYPROJ);document_id是Space/DocumentID(例如,QA/TestSpecs)health_check检查与Polarion服务器的连接。
get_project_info检索Polarion项目的相关信息。
project_alias:项目别名或ID(例如,“webstore”或“MYPROJ”)get_workitem (仅限普通项目)获取特定工作项的详细信息。
project_alias:项目别名或ID(例如,“webstore”或“MYPROJ”)workitem_id:工作项ID(例如,“PROJ-123”)get_plan_workitems代替search_workitems (仅限普通项目)使用Lucene查询语法或命名查询搜索工作项。
project_alias:项目别名或ID(例如,“webstore”或“MYPROJ”)query:Lucene查询或命名查询(例如,“query:open_bugs”)field_list:可选逗号分隔的返回字段列表get_plan_workitems代替查询语法:使用Apache Lucene查询语法和Polarion特定字段。有关全面的查询语法文档,请参阅官方Siemens Polarion文档和Apache Lucene查询解析器语法。
get_test_runs检索项目中的所有测试运行。
project_alias:项目别名或ID(例如,“webstore”或“MYPROJ”)get_test_run获取特定测试运行的详细信息。
project_alias:项目别名或ID(例如,“webstore”或“MYPROJ”)test_run_id:测试运行IDget_documents列出项目中的所有文档。
project_alias:项目别名或ID(例如,“webstore”或“MYPROJ”)get_test_specs_from_document从文档中提取测试规范ID。
project_alias:项目别名或ID(例如,“webstore”或“MYPROJ”)document_id:文档ID(格式:Space/DocumentID)discover_work_item_types发现项目中的可用工作项类型。
project_alias:项目别名或ID(例如,“webstore”或“MYPROJ”)limit:要采样的最大工作项数(默认:1000)这些工具仅适用于配置为is_plan: true的项目:
get_plans列出计划项目中的所有计划(发布、迭代)。
project_alias:项目别名或ID(必须是计划项目)get_plan获取特定计划的详细信息。
project_alias:项目别名或ID(必须是计划项目)plan_id:计划ID(例如,“R2024.4”或“Sprint23”)get_plan_workitems获取特定计划中的所有工作项。
project_alias:项目别名或ID(必须是计划项目)plan_id:计划IDsearch_plans使用Lucene查询语法搜索计划。
project_alias:项目别名或ID(必须是计划项目)query:Lucene查询(例如,“templateId:release”,“parent.id:R2024”)polarion://project/{project_id}:作为资源访问项目信息analyze_project:为项目生成分析提示workitem_analysis:为特定工作项生成分析提示为了让服务器被Microsoft Copilot Studio访问,您需要一个公共URL:
服务器端点将在:https://your-public-url/mcp/
确保服务器正在运行 服务器必须在上述公共URL上可访问。
OpenAPI规范
openapi.copilot.yaml文件已预先配置:
x-ms-agentic-protocol: mcp-streamable-1.0添加到Copilot Studio 有关将MCP服务器添加到Microsoft Copilot Studio的详细说明,请参阅官方Microsoft文档: https://github.com/microsoft/mcsmcp/blob/main/README.md
测试您的集成 Copilot Studio示例提示:
此服务器也可以与Cline(VSCode扩展)一起使用,通过运行SSE传输模式:
运行Cline兼容服务器
./run_server_cline.sh
这将在http://localhost:8000/mcp上启动服务器,使用SSE传输。
配置Cline
polarionhttp://localhost:8000/mcp或编辑cline_mcp_settings.json:
{
"mcpServers": {
"polarion": {
"url": "http://localhost:8000/mcp",
"disabled": false,
"autoApprove": ["health_check", "get_project_info"]
}
}
}
与Cline一起使用
PolarionMcp/
├── mcp_server/ # MCP服务器实现
│ ├── __init__.py
│ ├── main.py # 服务器入口点
│ ├── tools.py # MCP工具定义
│ ├── middleware.py # Copilot Studio兼容层
│ ├── config.py # 项目别名和查询配置
│ ├── helpers.py # 格式化工具输出的辅助函数
│ └── settings.py # 加载环境和配置
├── lib/ # 核心库
│ └── polarion/
│ └── polarion_driver.py # Polarion API封装
├── polarion_config.example.yaml # 配置模板
├── openapi.yaml # 包含HTTP动作的OpenAPI规范(GPT操作)
├── openapi.copilot.yaml # 为Copilot Studio的OpenAPI规范
├── run_server.sh # 方便启动脚本
├── pyproject.toml # Python包配置
├── .env.example # 环境变量模板
├── WORKFLOW_EXAMPLES.md # 使用模式和示例。自定义并用作您的AI代理的系统指令。
└── README.md # 本文档
pytest
black mcp_server lib
isort mcp_server lib
mypy mcp_server lib
/mcp/而非/mcp).env文件是否正确配置本项目根据MIT许可发布。详情请参阅LICENSE文件。
欢迎贡献!请随时提交Pull Request。