Jira周报MCP服务器
](https://www.python.org/downloads/) 
该项目提供了 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中使用。
⚙️ 设置
- 克隆存储库(如果适用):
git clone https://github.com/Jongryong/jira_reporter.git
cd jira_reporter- 安装依赖关系:
我们建议使用 uv:
uv pip install fastmcp "jira[cli]" python-dotenv httpx anyio或者,使用 pip:
pip install fastmcp "jira[cli]" python-dotenv httpx anyio- 创建
.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): 使用个人访问令牌.
▶️ 运行服务器(独立)
您可以独立运行服务器进行测试或其他目的:
- 直接使用Python:
python jira_reporter_server.py- 使用FastMCP CLI:
fastmcp run jira_reporter_server.py要使用SSE运行(例如,用于远程访问):
fastmcp run jira_reporter_server.py --transport sse --port 8001🖥️ 与Claude Desktop一起使用
要使此服务器作为Claude Desktop应用程序中的工具可用,请执行以下操作:
- 确保先决条件: 确保
fastmcp已安装并可在系统的PATH中访问,因为下面的配置使用fastmcp命令。
- 找到Claude配置文件: 查找
claude_desktop_config.json文件。其位置取决于您的操作系统:
- macOS: ~/Library/Application Support/Claude/claude_desktop_config.json - 窗户: %APPDATA%\Claude\claude_desktop_config.json (通常 C:\Users\\AppData\Roaming\Claude\claude_desktop_config.json) - Linux: ~/.config/Claude/claude_desktop_config.json (或 $XDG_CONFIG_HOME/Claude/)
- 编辑配置文件: 打开
claude_desktop_config.json在文本编辑器中。
- 添加服务器配置: 查找
"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" // = -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许可证