Personal JIRA MCP
Enables interaction with Jira to query issue details and lists, create and update work items, manage projects, and handle Jira attachments with automated download and organization capabilities.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Personal JIRA MCPshow me the details of issue ERP-123"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Personal JIRA MCP
一个基于FastMCP框架的个人JIRA集成插件,用于查询JIRA问题详情、列表及进行基本操作,支持JIRA附件管理。
什么是MCP?
MCP (Model Context Protocol) 是一种为大型语言模型(LLM)提供上下文和工具的标准化协议。它被称为"AI的USB-C接口",提供了统一的方式连接LLM与各种资源和功能。
本项目是一个MCP服务器,专门针对JIRA集成,允许AI通过标准化接口访问JIRA数据和功能,使得人工智能助手能够:
查询和检索JIRA问题
创建和更新工作项
下载和管理附件
执行JIRA相关操作
Related MCP server: MCP Atlassian
主要功能
查询JIRA问题详情和问题列表
创建和更新JIRA问题
获取项目列表和详情
管理和下载JIRA问题附件
自动将附件保存到~/.jira_mcp目录
按问题ID组织的子目录结构
支持下载单个或所有附件
安装
前提条件
Python 3.10 或更高版本
安装 uv (推荐) 或 pip
安装 uv
uv 是一个快速的 Python 包管理器,推荐用于安装和管理 Python 包。
Linux / macOS
# 使用 curl 安装
curl -sSf https://astral.sh/uv/install.sh | sh
# 或使用 pip 安装
pip install uvWindows
# 使用 PowerShell 安装
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
# 或使用 pip 安装
pip install uv验证安装
uv --version从PyPI安装
# 使用 uv (推荐)
uv pip install personal-jira-mcp
# 或使用 pip
pip install personal-jira-mcp从GitHub安装
# 使用 uv (推荐)
uv pip install git+https://github.com/yuezheng2006/mcp-server-jira.git
# 或使用 pip
pip install git+https://github.com/yuezheng2006/mcp-server-jira.git本地开发安装
# 克隆仓库
git clone https://github.com/yuezheng2006/mcp-server-jira.git
cd mcp-server-jira
# 使用 uv 安装依赖并开发模式安装
uv pip install -e .
# 或使用 pip
pip install -e .配置
创建一个.env文件,设置以下环境变量:
JIRA_SERVER_URL=http://your-jira-instance.com
JIRA_USERNAME=your_username
JIRA_PASSWORD=your_password
# 或者使用API令牌
JIRA_API_TOKEN=your_api_tokenCursor配置
在 .cursor/mcp.json 中添加以下配置(推荐使用uvx方式):
{
"mcpServers": {
"personal-jira-mcp": {
"command": "uvx",
"args": [
"--from=personal-jira-mcp",
"personal-jira-mcp",
"--transport",
"stdio"
],
"env": {
"JIRA_SERVER_URL": "http://your-jira-instance.com",
"JIRA_USERNAME": "your_username",
"JIRA_PASSWORD": "your_password"
}
}
}
}如果您已经本地安装了personal-jira-mcp(不推荐),也可以直接使用命令:
{
"mcpServers": {
"personal-jira-mcp": {
"command": "personal-jira-mcp",
"args": ["--transport", "stdio"],
"env": {
"JIRA_SERVER_URL": "http://your-jira-instance.com",
"JIRA_USERNAME": "your_username",
"JIRA_PASSWORD": "your_password"
}
}
}
}其他MCP客户端配置
如果你使用其他支持MCP协议的客户端或IDE,可以使用以下两种方式配置:
基于命令行方式
{
"command": "personal-jira-mcp",
"args": ["--transport", "stdio"],
"env": {
"JIRA_SERVER_URL": "http://your-jira-instance.com",
"JIRA_USERNAME": "your_username",
"JIRA_PASSWORD": "your_password"
}
}基于HTTP方式(需要单独运行服务器)
{
"url": "http://localhost:8000/mcp",
"headers": {
"Authorization": "Bearer your_token_if_needed"
}
}快速开始
启动MCP服务器
# 使用stdio传输模式(默认,适合IDE集成)
personal-jira-mcp --transport stdio
# 使用sse传输模式(适合Web集成)
personal-jira-mcp --transport sse
# 使用streamable-http模式(适合HTTP调用)
personal-jira-mcp --transport streamable-http --port 8000命令行工具
# 下载单个附件
personal-jira-extract ERP-161 example.png --output saved_file.png
# 下载问题的所有附件
personal-jira-attachments ERP-161
# 仅列出问题的所有附件,不下载
personal-jira-attachments ERP-161 --list-only
# 输出附件信息到JSON文件
personal-jira-attachments ERP-161 --output attachments.json在Cursor中使用
配置好mcp.json后,可以在Cursor中使用以下自然语言命令:
查看JIRA问题ERP-161的详情下载JIRA问题ERP-161的所有附件搜索所有处于"进行中"状态的JIRA问题详细文档
更详细的使用指南和API参考,请查看使用指南。
MCP提供的工具
本MCP服务器提供以下工具:
工具名称 | 描述 | 示例 |
get_issue | 获取JIRA问题详情 |
|
search_issues | 搜索JIRA问题列表 |
|
create_issue | 创建JIRA问题 | 创建一个标题为"修复登录问题"的任务 |
update_issue | 更新JIRA问题 | 将ERP-123的状态改为"已完成" |
get_projects | 获取JIRA项目列表 | 列出所有可访问的项目 |
get_project | 获取项目详情 | 获取ERP项目的详细信息 |
get_issue_attachments | 获取问题的所有附件 | 列出ERP-123的所有附件 |
download_all_attachments | 下载问题的所有附件 | 下载ERP-123的全部附件 |
get_attachment_by_filename | 获取特定附件 | 从ERP-123获取名为"截图.png"的附件 |
开发
安装开发依赖
# 使用 uv
uv pip install -e ".[dev]"
# 或使用 pip
pip install -e ".[dev]"发布
使用自动化脚本发布
# 使用包含的发布脚本
./scripts/publish.sh手动构建并发布到PyPI
# 确保已安装构建工具
pip install build twine
# 构建包
python -m build
# 上传到PyPI
python -m twine upload dist/*许可证
MIT
Available Tools
12 toolscreate_issueD
创建JIRA问题
| Name | Required | Description | Default |
|---|---|---|---|
| project_key | Yes | ||
| summary | Yes | ||
| description | No | ||
| issue_type | No | Task | |
| priority | No | ||
| assignee | No | ||
| labels | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. '创建JIRA问题' implies a write operation but doesn't disclose behavioral traits like whether this requires authentication, what happens on success/failure, rate limits, or side effects. It mentions nothing about the creation process, validation rules, or what the tool returns. This is inadequate for a mutation tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise - a single phrase. While this is efficient, it's arguably under-specified rather than appropriately concise. Every word earns its place, but the description lacks necessary detail. It's front-loaded with the core action but doesn't provide needed context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a mutation tool with 7 parameters, 0% schema description coverage, no annotations, and no output schema. The description is completely inadequate - it doesn't explain what the tool does beyond the name, provides no parameter guidance, no behavioral context, and no usage guidelines. For a complex creation tool, this leaves the agent guessing about everything from required fields to expected outcomes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. The description provides no information about any of the 7 parameters. It doesn't explain what 'project_key', 'summary', or other fields mean, their formats, or constraints. The description adds zero value beyond what the bare schema provides, failing to compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description '创建JIRA问题' (Create JIRA issue) states the basic action but is tautological with the tool name 'create_issue'. It doesn't specify what kind of issue is created or differentiate from siblings like 'update_issue' beyond the obvious verb difference. The purpose is clear but lacks specificity about the resource being created.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention when to choose 'create_issue' over 'update_issue' or 'search_issues', nor does it specify prerequisites like needing a valid project key or appropriate permissions. There's no context about appropriate use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
debug_issue_fieldsD
调试JIRA问题字段
| Name | Required | Description | Default |
|---|---|---|---|
| issue_key | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. '调试' (debug) implies a read or diagnostic operation, but it doesn't specify whether it's safe (non-destructive), requires permissions, has side effects, or what the output entails. This leaves the agent guessing about critical behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single phrase, which is concise but under-specified rather than efficiently informative. It's front-loaded but lacks necessary detail, making it more of a placeholder than a helpful summary. While not verbose, it doesn't earn its place with actionable content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (a debugging tool with no annotations, 1 undocumented parameter, and no output schema), the description is severely incomplete. It doesn't explain what debugging involves, what fields are examined, the output format, or how it differs from sibling tools like 'get_issue'. This leaves the agent with insufficient context to use the tool effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds no meaning beyond the input schema. With 1 parameter (issue_key) and 0% schema description coverage, the schema only provides a title and type. The description doesn't explain what 'issue_key' is (e.g., a JIRA identifier like 'PROJ-123'), its format, or how it's used in debugging, failing to compensate for the low schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description '调试JIRA问题字段' (Debug JIRA issue fields) states a general purpose but is vague. It doesn't specify what 'debug' entails (e.g., inspect, validate, troubleshoot) or what resource is affected beyond 'JIRA issue fields'. Compared to siblings like 'get_issue' or 'update_issue', it lacks differentiation in verb specificity or scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, context (e.g., for troubleshooting vs. regular operations), or exclusions. With siblings like 'get_issue' for retrieval and 'update_issue' for modification, there's no indication of when 'debug_issue_fields' is the appropriate choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
download_all_attachmentsC
下载JIRA问题的所有附件到本地
| Name | Required | Description | Default |
|---|---|---|---|
| issue_key | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states the tool downloads attachments to local storage, implying a write operation to the local system, but doesn't disclose behavioral traits such as file naming conventions, overwrite behavior, download location, network usage, or error handling. This leaves significant gaps for a tool that performs I/O operations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence in Chinese that directly states the tool's purpose without unnecessary words. It's appropriately sized and front-loaded, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a download operation (with no annotations, 0% schema coverage, and no output schema), the description is incomplete. It doesn't address key aspects like what happens if there are no attachments, how files are saved, or what the tool returns (e.g., success status, file paths). For a tool that interacts with external systems and local storage, more context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 0%, and the description provides no information about the 'issue_key' parameter beyond what the schema title ('Issue Key') implies. It doesn't explain the format, examples, or constraints for the issue key, failing to compensate for the lack of schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('下载' meaning 'download') and resource ('JIRA问题的所有附件' meaning 'all attachments of a JIRA issue'), making the purpose understandable. It doesn't explicitly distinguish from sibling tools like 'get_attachment_by_filename' or 'get_issue_attachments', which appear to be read-only operations, but the download action implies a local storage outcome.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'get_issue_attachments' (which might list attachments without downloading) or 'get_attachment_by_filename' (which might download a specific file). The description implies it's for bulk downloading all attachments, but doesn't specify prerequisites, error conditions, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_attachment_by_filenameC
根据问题ID和文件名获取JIRA附件
| Name | Required | Description | Default |
|---|---|---|---|
| issue_key | Yes | ||
| filename | Yes | ||
| save_to_disk | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but only states the basic action. It doesn't disclose behavioral traits such as whether this is a read-only operation, what happens if the file doesn't exist, authentication needs, rate limits, or output format (e.g., file download vs. metadata).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence in Chinese that directly states the tool's purpose without any fluff. It's appropriately sized and front-loaded, with every word contributing to understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (3 parameters, no annotations, no output schema), the description is incomplete. It lacks details on behavioral aspects, parameter usage beyond basics, and output handling, making it inadequate for a tool that likely involves file operations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It mentions '问题ID' (issue ID) and '文件名' (filename), which map to the required parameters 'issue_key' and 'filename', adding meaning beyond the schema. However, it doesn't explain the optional 'save_to_disk' parameter or provide format details, leaving gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('获取' meaning 'get') and resource ('JIRA附件' meaning 'JIRA attachment'), specifying it retrieves an attachment based on issue ID and filename. It distinguishes from siblings like 'get_issue_attachment' or 'download_all_attachments' by focusing on filename-based retrieval, though not explicitly named.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'get_issue_attachment' or 'download_all_attachments'. The description implies usage for retrieving a specific attachment by filename, but lacks explicit when/when-not instructions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_issueC
获取JIRA问题详情
| Name | Required | Description | Default |
|---|---|---|---|
| issue_key | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. The description only states what the tool does (get issue details) without mentioning any behavioral traits like whether it requires authentication, has rate limits, returns specific data formats, or handles errors. For a tool with zero annotation coverage, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with a single phrase ('获取JIRA问题详情'), which is appropriately sized for a simple tool. It's front-loaded with the core purpose and has zero wasted words, making it efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (a read operation with one parameter), lack of annotations, no output schema, and low schema coverage, the description is incomplete. It doesn't cover behavioral aspects, parameter details, or return values, leaving gaps that could hinder an AI agent's ability to use the tool effectively. The description does the bare minimum but lacks necessary context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds no meaning beyond what the input schema provides. With 0% schema description coverage and one parameter (issue_key), the schema only documents the parameter's title and type. The description doesn't explain what an 'issue_key' is, its format (e.g., 'PROJ-123'), or examples. Since schema coverage is low (<50%), the description fails to compensate, leaving parameter semantics unclear.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description '获取JIRA问题详情' (Get JIRA issue details) clearly states the verb (get) and resource (JIRA issue details), making the purpose understandable. However, it doesn't distinguish this tool from sibling tools like 'getIssues' or 'search_issues', which also retrieve issue information. The purpose is clear but lacks sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention that this tool retrieves a single issue by key, while 'getIssues' might retrieve multiple issues or 'search_issues' might filter issues. There's no explicit when/when-not advice or named alternatives, leaving usage context implied at best.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_issue_attachmentC
获取JIRA问题附件
| Name | Required | Description | Default |
|---|---|---|---|
| issue_key | Yes | ||
| attachment_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It implies a read operation ('get'), but doesn't disclose behavioral traits such as authentication needs, rate limits, error handling, or what the output looks like (e.g., file content or metadata). For a tool with no annotation coverage, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence in Chinese ('获取JIRA问题附件'), which is appropriately sized and front-loaded. There's no wasted text, making it highly concise and well-structured for its purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (2 required parameters, no annotations, no output schema), the description is incomplete. It lacks details on usage context, parameter meanings, behavioral aspects, and output format, making it inadequate for an AI agent to reliably invoke the tool without additional context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It mentions 'JIRA issue attachment' but doesn't explain the parameters 'issue_key' and 'attachment_id' (e.g., format, examples, or how they relate). The description adds minimal meaning beyond the schema, failing to address the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description '获取JIRA问题附件' (Get JIRA issue attachment) states a clear verb ('get') and resource ('JIRA issue attachment'), but it's vague about scope and doesn't distinguish from sibling tools like 'get_issue_attachments' (plural) or 'get_attachment_by_filename'. It specifies what it does but lacks precision about what exactly is retrieved.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. With siblings like 'get_issue_attachments' (likely lists attachments) and 'get_attachment_by_filename' (retrieves by filename), the description doesn't indicate that this tool requires specific IDs or is for single attachments, leaving usage unclear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_issue_attachmentsC
获取JIRA问题的所有附件
| Name | Required | Description | Default |
|---|---|---|---|
| issue_key | Yes | ||
| download | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states what the tool does but doesn't describe how it behaves: for example, whether it returns metadata or file content, if there are rate limits, authentication requirements, or pagination for large attachment sets. This is a significant gap for a tool with potential complexity in handling attachments.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence in Chinese that directly states the tool's purpose without any fluff or redundancy. It's appropriately sized and front-loaded, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of handling attachments (which could involve metadata, file downloads, or pagination), no annotations, and no output schema, the description is incomplete. It doesn't explain what the tool returns (e.g., list of attachment objects, file contents, or download links), leaving critical gaps for an agent to use it effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 0%, so the description must compensate, but it doesn't mention any parameters. It implies 'issue_key' is needed by referring to 'JIRA问题' (JIRA issue), but doesn't explain the 'download' parameter or its boolean nature. The baseline is 3 because the schema fully documents the parameters, though the description adds no value beyond what's in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('获取' meaning 'get') and resource ('JIRA问题的所有附件' meaning 'all attachments of a JIRA issue'), making the purpose immediately understandable. It doesn't explicitly distinguish from sibling tools like 'get_attachment_by_filename' or 'download_all_attachments', which would require more specificity to earn a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'get_attachment_by_filename' (for specific attachments) or 'download_all_attachments' (which may have different behavior). There's no mention of prerequisites, context, or exclusions, leaving the agent to infer usage from tool names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getIssuesC
获取JIRA问题及其附件
| Name | Required | Description | Default |
|---|---|---|---|
| issue_key | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions retrieving issues and attachments but doesn't disclose behavioral traits like whether this is a read-only operation, if it requires authentication, what format the output returns, or any rate limits. For a tool with no annotation coverage, this leaves significant gaps in understanding its behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with a single phrase, '获取JIRA问题及其附件', which is front-loaded and wastes no words. Every part of it directly contributes to stating the tool's purpose, making it efficiently structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (retrieving issues and attachments), lack of annotations, no output schema, and 0% schema description coverage, the description is incomplete. It doesn't explain return values, error handling, or how attachments are included, leaving the agent with insufficient information to use the tool effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 0%, so the description must compensate. It doesn't mention the 'issue_key' parameter at all, leaving it undocumented. The description implies retrieval but provides no context on what the parameter represents or how it should be used, failing to add meaning beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description '获取JIRA问题及其附件' (Get JIRA issues and their attachments) states a clear verb ('获取' - get) and resource ('JIRA问题及其附件' - JIRA issues and attachments), but it's vague about scope. It doesn't specify whether it retrieves a single issue or multiple issues, and it doesn't distinguish from siblings like 'get_issue' or 'search_issues' which likely have different functionalities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With siblings like 'get_issue', 'get_issue_attachments', and 'search_issues', there's no indication of how this tool differs in usage context, prerequisites, or when it should be preferred over other options.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_projectC
获取JIRA项目详情
| Name | Required | Description | Default |
|---|---|---|---|
| project_key | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states the action ('获取' - get) without describing what '获取' entails—e.g., whether it's a read-only operation, requires authentication, has rate limits, returns structured data, or handles errors. This leaves the agent with insufficient information about how the tool behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise—a single phrase in Chinese—and front-loaded with the core action. There's no wasted text, making it efficient for quick understanding, though this brevity contributes to gaps in other dimensions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (a read operation with 1 parameter), lack of annotations, 0% schema coverage, and no output schema, the description is incomplete. It doesn't cover behavioral aspects, parameter details, or return values, leaving the agent unprepared to use the tool effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds no meaning beyond the input schema. With 0% schema description coverage and 1 parameter ('project_key'), the schema only provides a title and type. The description doesn't explain what 'project_key' is (e.g., a JIRA identifier like 'PROJ-123'), its format, or examples. This fails to compensate for the low schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description '获取JIRA项目详情' (Get JIRA project details) states a clear verb ('获取' - get) and resource ('JIRA项目' - JIRA project), but it's vague about what '详情' (details) includes. It doesn't distinguish from sibling 'get_projects' (which likely lists multiple projects) or 'get_issue' (which gets issue details). The purpose is understandable but lacks specificity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. It doesn't mention when to use it over 'get_projects' (for listing projects) or 'get_issue' (for issue details), nor does it specify prerequisites like needing a project key. The description alone offers no usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_projectsB
获取JIRA项目列表
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. The description only states what the tool does ('get JIRA project list') without revealing any behavioral traits such as whether it requires authentication, how it handles errors, if it's read-only or has side effects, or what format the output might be in. This leaves significant gaps for an AI agent to understand the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient phrase ('获取JIRA项目列表') that directly states the tool's purpose without any unnecessary words. It is appropriately sized and front-loaded, making it easy to understand at a glance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (0 parameters, no output schema, no annotations), the description is minimal but incomplete. It lacks behavioral context (e.g., read-only vs. mutative, authentication needs) and doesn't explain the return values or format, which is crucial since there's no output schema. For a tool interacting with a system like JIRA, more completeness is needed to guide proper usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters, and the schema description coverage is 100%, meaning there are no parameters to document. The description doesn't need to add parameter semantics, so it meets the baseline expectation for a parameterless tool. No additional value is required beyond stating the tool's purpose.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description '获取JIRA项目列表' clearly states the action ('获取' meaning 'get/fetch') and resource ('JIRA项目列表' meaning 'JIRA project list'), providing a specific verb+resource combination. However, it doesn't distinguish this from sibling tools like 'get_project' (singular), which might retrieve a single project, leaving some ambiguity about sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention when to use 'get_projects' (plural) instead of 'get_project' (singular) or other sibling tools like 'search_issues', nor does it specify any prerequisites or context for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_issuesC
搜索JIRA问题列表
| Name | Required | Description | Default |
|---|---|---|---|
| jql | Yes | ||
| max_results | No | ||
| start_at | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions searching but doesn't describe key behaviors: whether this is a read-only operation, how results are returned (e.g., pagination via start_at and max_results), rate limits, authentication needs, or error handling. This is a significant gap for a search tool with no annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient phrase in Chinese ('搜索JIRA问题列表'), which is appropriately concise and front-loaded. There's no wasted verbiage, though it could benefit from slightly more detail given the lack of annotations and schema descriptions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (a search tool with 3 parameters, no annotations, and no output schema), the description is incomplete. It doesn't explain the return format, error conditions, or how to interpret parameters like 'jql', leaving the agent with insufficient context to use the tool effectively beyond basic inference.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the schema provides no parameter descriptions. The tool description adds no information about parameters beyond what's implied by the tool name (e.g., it doesn't explain what 'jql' is, how 'max_results' works, or what 'start_at' means). With 3 parameters and no compensation in the description, this is inadequate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description '搜索JIRA问题列表' (Search JIRA issue list) states a clear verb ('搜索' - search) and resource ('JIRA问题列表' - JIRA issue list), providing basic purpose. However, it doesn't distinguish this tool from sibling tools like 'getIssues' or 'get_issue', making it somewhat vague about its specific scope compared to alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'getIssues' or 'get_issue'. It lacks any context about prerequisites, typical use cases, or exclusions, leaving the agent to infer usage from the tool name and parameters alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_issueD
更新JIRA问题
| Name | Required | Description | Default |
|---|---|---|---|
| issue_key | Yes | ||
| summary | No | ||
| description | No | ||
| issue_type | No | ||
| priority | No | ||
| assignee | No | ||
| labels | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. '更新JIRA问题' only indicates it's a mutation operation but reveals nothing about required permissions, whether updates are reversible, rate limits, error conditions, or what happens when partial updates are provided. For a mutation tool with 7 parameters and zero annotation coverage, this is completely inadequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While technically concise (three Chinese characters), this is under-specification rather than effective conciseness. The single phrase doesn't provide enough information to be useful, and there's no structure or front-loading of critical information. Every sentence should earn its place, but here there's essentially no content to evaluate for structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with 7 parameters, 0% schema description coverage, no annotations, and no output schema, the description is completely inadequate. It doesn't explain what the tool returns, what fields can be updated, required permissions, or any behavioral characteristics. The description fails to compensate for the lack of structured information across all dimensions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% (no parameter descriptions in schema), and the tool description provides no information about any of the 7 parameters. The description doesn't mention that 'issue_key' is required or explain what any parameters represent, their formats, or how they interact. With 0% schema coverage and no parameter information in the description, this fails to provide basic parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description '更新JIRA问题' (Update JIRA issue) is a tautology that restates the tool name in Chinese. While it indicates the verb ('update') and resource ('JIRA issue'), it doesn't specify what aspects can be updated or differentiate this from sibling tools like 'create_issue' or 'debug_issue_fields'. The purpose is vague beyond the basic action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. There are multiple sibling tools for JIRA issue operations (create_issue, get_issue, search_issues, etc.), but the description offers no context about prerequisites, when this tool is appropriate, or when other tools should be used instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
12 tool updates
- First observed
create_issue - First observed
debug_issue_fields - First observed
download_all_attachments - First observed
get_attachment_by_filename - First observed
get_issue - First observed
get_issue_attachment - First observed
get_issue_attachments - First observed
get_project - First observed
get_projects - First observed
getIssues - First observed
search_issues - First observed
update_issue
TDQS
Scored across 12 tools
There is significant overlap between attachment-related tools (download_all_attachments, get_attachment_by_filename, get_issue_attachment, get_issue_attachments, getIssues includes attachments) that could cause confusion about which to use. However, core issue operations (create, get, update, search) and project operations are clearly distinct.
The naming is inconsistent with mixed conventions: most tools use snake_case (create_issue, get_issue), but getIssues uses camelCase. There's also redundancy in naming (get_issue_attachment vs get_attachment_by_filename) and unclear verb choices (debug_issue_fields stands out as different from other CRUD-style names).
12 tools is reasonable for a JIRA server covering issues, projects, and attachments. While there are some redundant tools, the count aligns well with the domain scope and doesn't feel excessive or insufficient for basic JIRA operations.
The toolset covers core JIRA workflows well: CRUD for issues (create, get, update, search), project access (get, list), and attachment handling. Minor gaps include no delete operations for issues or attachments, and debug_issue_fields is a niche tool that doesn't fit standard CRUD patterns, but agents can work around these limitations.
Related MCP Connectors
MCP server enabling AI agents to manage Bitrix24 features via standardized protocol
- ZapierOAuthcom.zapier
Hosted MCP server connecting AI assistants to 9,000+ apps and 40,000+ actions via Zapier.
MCP server that lets AI assistants use all OneSchema features exposed via the public API.
MCP server for AI access to SmartBear tools, including BugSnag, Reflect, Swagger, PactFlow, QTM4J.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI applications to manage JIRA issues, workflows, and tasks through a standardized MCP interface, facilitating real-time updates and seamless interaction with JIRA's API.10MIT
- AlicenseNot gradedqualityCmaintenanceAn MCP server that enables AI agents to interact with Atlassian products (Confluence and Jira) for content management, issue tracking, and project management through a standardized interface.2,649 npm6MIT
- AlicenseCqualityDmaintenanceAn MCP server that enables communication with Jira, allowing users to perform operations like getting, searching, creating, and editing issues through natural language interaction.130 npmMIT
- AlicenseCqualityDmaintenanceA Model Context Protocol server that enables AI assistants to create and manage JIRA issues with rich markdown formatting and automatic conversion to Atlassian Document Format.4MIT