Jira MCP客户端与Groq LLM集成

通过MCP stdio桥将本地Groq LLM(通过LangChain)与Storm AI的Jira MCP服务器集成,允许用户与Groq聊天并调用Storm AI暴露的Jira工具。

  • by TusharMEH
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 TusharMEH/Jira_MCP

使用说明

Jira MCP客户端与Groq LLM

通过MCP stdio桥将本地Groq LLM(通过LangChain)与Storm AI的Jira MCP服务器集成。这让你可以与Groq聊天,并让它调用Storm AI暴露的真实Jira工具。

工作原理(项目流程)

  • 初创公司:脚本使用以下命令启动MCP网桥 npx mcp-remote 指向您的Storm AI网关 X-API-Key auth。
  • 握手:MCP ClientSession 初始化并列出Storm AI发布的可用Jira工具。
  • LLM设置:Groq已初始化(langchain_groq.ChatGroq)并绑定到发现的MCP工具(转换为LangChain的OpenAI函数调用模式)。
  • 聊天循环:您的提示已发送给Groq。如果模型决定使用Jira工具,脚本将通过MCP会话执行它,收集工具的结果,并将其反馈给Groq以获得最终答案。如果不需要工具,Groq会直接回复。

先决条件

  • Storm AI Jira MCP服务器 通过网关URL运行和访问。
  • API密钥:
    • STORM_API_KEY (又名Storm MCP API密钥)
    • GROQ_API_KEY
  • 网关URL:
    • STORM_GATEWAY_URL (例如。, https://gateway.storm.dev/mcp/jira 或根据您的设置提供)
  • Node.js 随着 npx 可用(通常为Windows路径 C:\\Program Files\\nodejs\\npx).
  • Python 3.10+ 和 pip.

环境变量

创建一个 .env 项目根目录中的文件:

STORM_GATEWAY_URL=https://your-storm-gateway.example/mcp/jira
STORM_API_KEY=your_storm_api_key_here
GROQ_API_KEY=your_groq_api_key_here

笔记:

  • 在Windows上,保持 NPX_PATH 在 main.py 如果不同,请与您的Node.js安装对齐。
  • 您可以在中更改Groq模型 main.py (参见 GROQ_MODEL).

安装

pip install -r requirements.txt

如果你使用 uv:

uv sync

跑

python main.py

启动时,脚本打印先决条件检查,通过MCP连接到Storm AI,列出可用的Jira工具,初始化Groq,并进入交互式聊天。

示例用法(交互式)

  • 启动后键入的示例查询:
    • “列出我的所有Jira项目”
    • “显示PROJ项目中的未解决问题”
    • “创建任务:事件-API延迟峰值,将优先级设置为高”
    • “获取PROJ-123问题的详细信息”
    • “向PROJ-456添加评论:正在处理此问题”

示例会话摘录:

=== STEP 1: Connecting to Storm AI ===
Gateway: https://your-storm-gateway.example/mcp/jira
✓ mcp-remote bridge started
✓ Connected to Storm AI gateway
✓ MCP session created
✓ Handshake completed

=== STEP 2: Discovering Jira Tools ===
✓ Found 12 Jira tools from Storm AI:
  1. jira_search_issues
  2. jira_create_issue
  ...

=== STEP 3: Setting up Groq LLM ===
✓ Groq LLM initialized (model: meta-llama/llama-4-maverick-17b-128e-instruct)
✓ Groq now has access to 12 Jira tools!

=== STEP 4: Chat with Jira via Groq ===

👤 You: Show me open issues in project PROJ
🤖 Groq thinking...
🔧 Groq decided to call Jira tools:
  📞 Tool: jira_search_issues
  📝 Args: {"jql": "project = PROJ AND statusCategory != Done ORDER BY updated DESC"}
  ⏳ Executing via Storm AI... ✓
  📊 Result: 1820 characters received

💬 Groq:
- 3 open issues found in PROJ:
  - PROJ-123 (High): API timeout on login
  - PROJ-125 (Medium): Dashboard chart misrender
  - PROJ-130 (Low): Typo in settings label

配置详细信息

  • main.py
    • 倒像 STORM_GATEWAY_URL, STORM_API_KEY, GROQ_API_KEY 从环境。
    • 用途 NPX_PATH 推出 mcp-remote 随着 --header X-API-Key: <STORM_API_KEY>.
    • Binds为Groq发现了用于函数调用的MCP工具。
  • jira_mcp_client.py
    • 早期版本,消息流更简单;保留以供参考。

故障排除

  • “请设置您的Groq API密钥”:确保 GROQ_API_KEY 存在于 .env 或环境。
  • “无法启动mcp-remote”:验证是否已安装Node.js,以及 NPX_PATH 在 main.py 正确或确保 npx 在PATH上。
  • “握手失败”或工具列表为空:确认 STORM_GATEWAY_URL 是正确的 STORM_API_KEY 有访问权限。
  • 工具结果为空:MCP服务器可能不会为某些查询返回任何内容;尝试更简单的查询或在Storm AI中验证Jira连接。

安全

  • .env被Git通过以下方式忽略 .gitignore.

其他示例

  • 询问特定问题的状态和受让人:

    • “IT-6的状态是什么,谁被分配到该问题?”

    示例结果:

    🔧 Groq decided to call Jira tools:
      📞 Tool: jira_get_issue
      📝 Args: {"issueIdOrKey": "IT-6"}
      ⏳ Executing via Storm AI... ✓
    
    💬 Groq:
    - IT-6 status: In Progress
    - Assignee: Jane Doe (@jane.doe)
    
  • 创建一个带有标题和描述的新问题:

    • 在项目IT中创建一个任务,标题为“登录2FA失败”,描述为“SSO用户的2FA步骤间歇性失败;捕获日志并添加重试”

    示例结果:

    🔧 Groq decided to call Jira tools:
      📞 Tool: jira_create_issue
      📝 Args: {"projectKey": "IT", "summary": "Login 2FA failure", "description": "2FA step intermittently fails for SSO users; capture logs and add retry.", "issuetype": "Task", "priority": "High"}
      ⏳ Executing via Storm AI... ✓
    
    💬 Groq:
    - Created issue IT-142 with priority High
    - Link: https://your-jira.example/browse/IT-142