Jira MCP流媒体客户端
基于Streamlit的聊天客户端,使用以下方式回答Jira查询:
- MCP工具和提示
- LangGraph工作流编排
- 当地Ollama模型骆驼3.2:最新
已实施的工作流
- 获取Sprint见解 --总结一个命名板的当前冲刺进度。
- 获取问题详细信息 --获取并格式化特定Jira问题密钥的详细信息。
- 获取团队状态 --交互式多轮收集每个受让人的状态更新,然后是一份综合的scrum主报告。
路由是基于用户意图自动进行的。
建筑
- 集中式MCP客户端:src/client/MCP_client.py
- 集中式结构化日志记录:src/logging_config.py
- LangGraph路由器:src/graph/router.py
- 工作流节点:
- src/graph/workflows/sprint_insights.py - src/graph/workflows/issue-details.py - src/graph/workflows/team_status.py
- 流线型用户界面:src/UI/app.py
所有工具和提示调用都通过集中式MCP客户端进行。
团队状态工作流
团队状态工作流是一个多轮交互式收集循环:
- 为董事会获取所有活动的冲刺问题,并按受让人对其进行分组。
- 依次介绍每个受让人的问题,提示他们提供状态更新。
- 在所有受让人都做出回应后,通过LLM生成一份综合的scrum主报告。
会话状态(team_status_session)在Streamlit中跨轮次持久化,因此收集循环可以在多个用户交互中幸存下来。
MCP服务器假设
MCP服务器预计位于:
预期工具:
get_active_sprint_issuesget_issue_details
预期提示:
format_issue_detailsformat_sprint_progress
设置
- 安装依赖项:
pip install -r requirements.txt- 确保Ollama正在运行并且模型可用:
ollama pull llama3.2:latest- 确保MCP服务器正在配置的端点上运行。
配置
运行时行为可以通过环境变量进行调整:
| 变量 | 默认值 | 描述 |
|---|---|---|
MCP_SERVER_URL | http://localhost:8000/sse | MCP服务器端点 |
OLLAMA_MODEL | llama3.2:latest | 使用Olama模型 |
APP_TITLE | Jira Copilot | 流线型页面标题 |
APP_SUBTITLE | LangGraph + MCP powered Jira assistant | UI中显示的字幕 |
STREAMING_ENABLED | true | 按令牌流启用令牌 |
LOG_LEVEL | INFO | 日志冗长(DEBUG, INFO, WARNING, ERROR) |
LOG_FORMAT | json | 日志输出格式(json 或 text) |
跑
streamlit run src/main.py使用示例
Show sprint progress for board Platform TeamGive me issue details for PROJ-42Get team status for Platform Team--启动交互式状态收集循环
备注
- 董事会名称从sprint和团队状态工作流的聊天请求中提取;如果无法解析,则要求LLM进行推断。
- 如果缺少板名或问题密钥,应用程序会要求澄清。
- UI被配置为页面主体被锁定,消息面板可滚动。
- 团队状态收集循环通过以下方式在Streamlit重新运行时持续存在
st.session_state.team_status_session.
