项目简介
jira-service MCP server 是一个基于 Model Context Protocol (MCP) 的后端服务,旨在为大型语言模型 (LLM) 客户端提供与 Jira 项目管理工具集成的能力。它允许 LLM 通过标准化的 MCP 协议,安全、可扩展地访问 Jira 资源、执行 Jira 操作,从而增强 LLM 在项目管理和 issue 跟踪等方面的应用能力。
主要功能点
-
资源 (Resources):
- 自定义 note:// URI 方案: 虽然 README 中提到 note 资源,但代码 'server.py' 和 'server2.py' 中 'server.py' 实现了 Jira 相关的功能,'server2.py' 实现了 note 资源。因此,实际提供的资源是 Jira 项目相关的,可能通过某种 URI 方案访问(具体 URI 方案在代码中未明确展示,可能需要进一步完善)。
- Jira 项目信息: 能够获取 Jira 项目的名称、描述等基本信息 (参考代码中的 'handle_list_resources' 函数和 'fetch_jira_projects' 函数)。
-
Prompt 模板 (Prompts):
- summarize-notes (总结笔记): 'server2.py' 中提供了一个 'summarize-notes' Prompt,用于总结所有存储的笔记。但 'server.py' 中未实现 Prompt 功能,实际提供的 Prompt 功能可能取决于具体运行的是哪个 server 文件 (server.py 或 server2.py)。
- 可配置的总结风格: 'summarize-notes' Prompt 支持可选的 "style" 参数,允许用户控制总结的详细程度 (brief/detailed)。
-
工具 (Tools):
- jira_list_projects (列出 Jira 项目): 列出所有可访问的 Jira 项目。
- jira_get_project_details (获取 Jira 项目详情): 获取指定 Jira 项目的详细信息。
- jira_search_issues (搜索 Jira issue): 根据 issue ID 或项目 ID 搜索 Jira issue。
- jira_add_issue_comment (添加 Jira issue 评论): 向指定的 Jira issue 添加评论。
安装步骤
-
安装 Python 依赖: 确保你的 Python 环境中安装了项目所需的依赖。虽然 'README.md' 中提到了 'uv sync' 和 'uv build',但根据代码内容,更常见的方式是使用 'pip' 或类似的包管理工具安装依赖。项目可能需要 'mcp-server-lib' (根据 'from mcp.server import Server' 推断), 'jira' Python 库, 'python-dotenv' 等。具体依赖列表通常在 'requirements.txt' 或 'pyproject.toml' 文件中,但该仓库没有提供这些文件,需要用户自行根据代码分析依赖并安装。例如,可以尝试:
pip install mcp-server-lib jira python-dotenv httpx -
配置 Jira API 密钥: 该服务需要连接到 Jira API,因此需要配置 Jira API 密钥。
- 在项目根目录下创建 '.env' 文件。
- 在 '.env' 文件中添加以下环境变量,替换为你的 Jira API 密钥和相关信息:
请注意 'src/jira_service/utilities.py' 中使用了 'WORK_JIRA_SERVER', 'WORK_JIRA_USER', 'PERSONAL_JIRA_SERVER', 'PERSONAL_JIRA_USER' 等常量,可能也需要在 '.env' 文件中配置,或者根据实际情况修改代码中的常量。WORK_JIRA_API_KEY=YOUR_JIRA_API_KEY PERSONAL_JIRA_API_KEY=YOUR_PERSONAL_JIRA_API_KEY # 如果需要 add_jira_issue_comment 功能
-
安装 Claude Desktop (如果使用 Claude 客户端): 如果你计划在 Claude Desktop 中使用此 MCP 服务器,请确保已安装 Claude Desktop 客户端。
服务器配置
以下是在 MCP 客户端(例如 Claude Desktop)中配置 'jira-service' MCP 服务器的示例配置信息。你需要将此配置添加到 MCP 客户端的配置文件中。
开发/未发布服务器配置 (Development/Unpublished Servers Configuration):
{ "mcpServers": { "jira-service": { "command": "uv", "args": [ "--directory", "/path/to/jira-mcp-server", // 替换为 jira-mcp-server 仓库的实际本地路径 "run", "jira-service.server" // 运行 server.py 文件 (如果使用 server2.py,则改为 jira-service.server2) ] } } }
已发布服务器配置 (Published Servers Configuration):
{ "mcpServers": { "jira-service": { "command": "uvx", "args": [ "jira-service" // 假设打包后的可执行文件名为 jira-service,且在 PATH 环境变量中 ] } } }
配置参数说明:
- 'server name': 'jira-service' - MCP 服务器的名称,客户端通过此名称识别服务器。
- 'command': 指定启动 MCP 服务器的命令。
- 'uv': 示例中使用了 'uv',这可能是一个包管理和运行工具 (根据 'README.md' 内容推测)。你需要根据你的实际环境和项目打包方式,修改为正确的启动命令。例如,如果直接使用 Python 运行 'server.py','command' 可以设置为 'python','args' 相应修改。
- 'uvx': 可能是用于运行打包后的可执行文件的命令。
- 'args': 启动命令的参数列表。
- '--directory': (开发模式) 指定项目代码所在的目录。
- 'run': (开发模式) 'uv' 命令的子命令,用于运行指定的 Python 模块。
- 'jira-service.server': (开发模式) 要运行的 Python 模块,指向 'src/jira_service/server.py' 文件。 如果要运行 'server2.py',则改为 'jira-service.server2'。
- 'jira-service': (发布模式) 假设打包后的可执行文件名。
重要提示:
- 请根据你的实际环境和 Python 包管理工具 (如 'uv', 'pipenv', 'poetry' 等) 以及项目打包方式,调整 'command' 和 'args' 配置。
- '/path/to/jira-mcp-server' 需要替换为你的 'jira-mcp-server' 仓库在本地文件系统中的实际路径。
- 'jira-service.server' 和 'jira-service.server2' 指的是 Python 模块名,对应 'src/jira_service/server.py' 和 'src/jira_service/server2.py' 文件。 你需要根据要运行的服务器版本选择正确的模块名。
- 已发布服务器配置通常需要将项目打包成可执行文件,并确保该可执行文件在系统的 PATH 环境变量中,或者提供可执行文件的完整路径。
基本使用方法
-
启动 MCP 服务器: 根据上面 "服务器配置" 中的配置,在 MCP 客户端中启动 'jira-service' 服务器。客户端会根据配置的 'command' 和 'args' 运行服务器程序。
-
在 MCP 客户端中使用工具和 Prompt: 一旦服务器成功启动并连接到 MCP 客户端,你就可以在客户端中使用 'jira-service' 提供的工具 (例如 'jira_list_projects', 'jira_search_issues') 和 Prompt (例如 'summarize-notes',如果运行的是 'server2.py' 版本)。
-
调用工具: 在客户端中,你可以选择调用 'jira-service' 提供的工具,并根据工具的 'inputSchema' 提供相应的参数。例如,调用 'jira_search_issues' 工具,可能需要提供 'project_id' 或 'issue_id' 等参数来搜索 Jira issue。
-
使用 Prompt: 如果运行的是 'server2.py' 版本,你可以使用 'summarize-notes' Prompt 来总结笔记。你可以根据 Prompt 的定义,选择是否提供可选的参数 (例如 'style')。
具体如何在 MCP 客户端中操作和调用工具、使用 Prompt,请参考你使用的 MCP 客户端 (例如 Claude Desktop) 的用户文档。客户端通常会提供图形界面或命令来列出可用的 MCP 服务器、工具和 Prompt,并允许用户进行调用和交互。
-
代码运行说明:
- 仓库中包含 'server.py' 和 'server2.py' 两个 server 文件,分别实现了不同的功能:
- 'server.py': 主要实现了 Jira 集成功能,包括列出 Jira 项目、获取项目详情、搜索 issue、添加 issue 评论等工具。但没有实现 Resource 和 Prompt 功能。
- 'server2.py': 主要实现了简单的 note 资源管理和 'summarize-notes' Prompt,以及 'add-note' 工具。没有集成 Jira 功能。
- 你需要根据你的需求选择运行哪个 server 文件。 如果需要 Jira 集成功能,运行 'server.py';如果需要 note 资源和 Prompt 功能,运行 'server2.py'。 在 MCP 客户端配置中,需要相应修改 'args' 中的模块名。
- 'tests/jira_test.py' 文件可能包含一些测试代码,但仓库中没有完整的单元测试或集成测试。
- 'src/jira_service/jira_connect.py' 和 'src/jira_service/utilities.py' 文件包含了连接 Jira API 和操作 Jira 的相关代码。
总而言之, 'chima-org_jira-mcp-server' 仓库 是有效的 MCP 服务器实现,尽管它可能还处于开发阶段,功能相对简单,并且文档和配置信息可能需要进一步完善。它演示了如何使用 'mcp-server-lib' 库构建 MCP 服务器,并集成了 Jira 工具或简单的 note 资源管理和 Prompt 功能。用户可以根据自身需求选择并配置合适的 server 版本,并根据提供的说明在 MCP 客户端中使用该服务器。
信息
分类
开发者工具