Jira周报生成服务

一个基于FastMCP的服务,连接Jira实例生成周报,可选LLM摘要功能。

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

使用说明

Jira周报MCP服务器

该项目提供了 FastMCP 连接到Jira实例(云或服务器/数据中心)的服务器,以根据问题活动生成每周报告。它利用了 pycontribs-jira 用于Jira交互的库,并且可以选择使用连接的客户端的大型语言模型(LLM)来汇总生成的报告。

✨ 特性

  • Jira连接: 使用存储在 .env 文件。
  • MCP工具: 暴露a generate_jira_report 工具可通过模型上下文协议访问。
  • 灵活的报告:
    • 默认情况下,报告过去7天内更新的问题。
    • 允许指定自定义JQL查询。
    • 可以根据特定的Jira项目密钥筛选报告。
    • 限制返回的结果数量(可配置)。
  • (可选)法学硕士概述: 可以使用 客户的 LLM(通过 ctx.sample())提供报告的简明摘要。
  • 异步处理: 使用以下命令在异步FastMCP服务器内正确处理同步Jira库调用 asyncio.to_thread.

📋 先决条件

  • Python 3.10或更高版本。
  • uv (推荐)或 pip 用于包管理。
  • 访问Jira实例(云、服务器或数据中心)。
  • Jira API令牌(用于服务器/DC的个人访问令牌)。
  • FastMCP命令行界面 已安装并可在系统的PATH中使用。

⚙️ 设置

  1. 克隆存储库(如果适用):

    git clone https://github.com/Jongryong/jira_reporter.git
    cd jira_reporter
    
  2. 安装依赖关系: 我们建议使用 uv:

    uv pip install fastmcp "jira[cli]" python-dotenv httpx anyio
    

    或者,使用 pip:

    pip install fastmcp "jira[cli]" python-dotenv httpx anyio
    
  3. 创建 .env 文件: 创建一个名为的文件 .env 在 同一目录 像 jira_reporter_server.py.添加您的Jira连接详细信息:

    # .env
    JIRA_URL=https://your-domain.atlassian.net  # Your Jira Cloud URL or Self-Hosted URL
    JIRA_USERNAME=your_email@example.com       # Your Jira login email
    JIRA_API_TOKEN=your_api_token_or_pat       # Your generated API Token or PAT
    
    • 安全:
      • 永远不要承诺你的 .env 文件到版本控制! 添加 .env 到你的 .gitignore 文件。
      • Jira Cloud: 从Atlassian帐户设置生成API令牌: 管理API令牌.
      • Jira服务器/数据中心: 根据Jira用户配置文件设置生成个人访问令牌(PAT): 使用个人访问令牌.

▶️ 运行服务器(独立)

您可以独立运行服务器进行测试或其他目的:

  1. 直接使用Python:

    python jira_reporter_server.py
    
  2. 使用FastMCP CLI:

    fastmcp run jira_reporter_server.py
    

    要使用SSE运行(例如,用于远程访问):

    fastmcp run jira_reporter_server.py --transport sse --port 8001
    

🖥️ 与Claude Desktop一起使用

要使此服务器作为Claude Desktop应用程序中的工具可用,请执行以下操作:

  1. 确保先决条件: 确保 fastmcp 已安装并可在系统的PATH中访问,因为下面的配置使用 fastmcp 命令。

  2. 找到Claude配置文件: 查找 claude_desktop_config.json 文件。其位置取决于您的操作系统:

    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • 窗户: %APPDATA%\Claude\claude_desktop_config.json (通常 C:\Users\<YourUsername>\AppData\Roaming\Claude\claude_desktop_config.json)
    • Linux: ~/.config/Claude/claude_desktop_config.json (或 $XDG_CONFIG_HOME/Claude/)
  3. 编辑配置文件: 打开 claude_desktop_config.json 在文本编辑器中。

  4. 添加服务器配置: 查找 "mcpServers" JSON中的对象(如果它不存在,请将其创建为空对象 {}).在内部添加以下条目 mcpServers,确保更换 "path/to/your/jira_reporter_server.py" 随着 绝对路径 到你的脚本:

    {
      "mcpServers": {
        // ... other servers might be here ...
    
        "jira_report": {
          "command": "fastmcp",
          "args": [
            "run",
            "/path/to/your/jira_reporter_server.py" // <-- IMPORTANT: Use the full, absolute path here
          ]
        }
    
        // ... other servers might be here ...
      }
      // ... rest of your Claude config ...
    }
    
    • "jira_report":这是克劳德使用的内部名称。如果需要,您可以更改它。
    • "command": "fastmcp":告诉克劳德使用 fastmcp 命令行工具。
    • "args": [...]:告诉克劳德跑 fastmcp run /path/to/your/jira_reporter_server.py.
  5. 保存并重新启动: 保存 claude_desktop_config.json 文件并重新启动Claude Desktop应用程序。

  6. 调用工具: 现在,您应该能够通过提及Python脚本中定义的服务器名称来使用Claude中的工具(Jira Weekly Reporter).例如: @Jira Weekly Reporter generate jira report for project MYPROJ and summarize it

🛠️ MCP工具详细信息

  • 工具名称: generate_jira_report
  • 说明: 基于JQL查询生成Jira问题报告(默认为最近更新)。可选择使用客户的LLM对报告进行总结。

参数:

参数 类型 必填 默认 说明
jql_query string 没有 updated >= -7d ORDER BY updated DESC 可选JQL查询。如果省略,则使用默认值。
project_key string 没有 None 可选的Jira项目密钥(例如“PROJ”)用于限制搜索范围(添加为 project = 'KEY' AND ...).
max_results integer 没有 50 原始报告数据中包含的最大问题数。
summarize boolean 没有 false 如果 true,服务器将请求 客户的 LLM通过 ctx.sample().

📦 服务器依赖关系

这 FastMCP 构造函数包括 dependencies=["jira"].这告诉工具 fastmcp install 那个 jira 创建隔离环境时,此服务器需要库才能正常运行。

🤝 贡献

欢迎投稿!请随时提交问题或拉取请求。

📄 许可证

MIT许可证