Jira MCP Server
Provides tools for interacting with Jira, including searching issues with JQL, retrieving issue details, creating and updating issues, adding comments, managing status transitions, assigning issues, listing projects, and getting the authenticated user profile.
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., "@Jira MCP ServerShow me Jira issues assigned to me"
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.
Jira MCP Server
An MCP (Model Context Protocol) server that connects VS Code Copilot to your Jira instance – Cloud, Server, or Data Center.
Quick Setup
1. Install & build
cd jira-mcp-server
npm install
npm run build2. Configure credentials
Copy the example and fill in your values:
cp .env.example .envEdit .env:
# Your Jira site URL
JIRA_BASE_URL=https://yourcompany.atlassian.net
# Your email (Cloud) or username (Server)
JIRA_EMAIL=you@yourcompany.com
# API token (Cloud) or Personal Access Token (Server)
JIRA_API_TOKEN=your-token-here
# "cloud" or "server"
JIRA_AUTH_TYPE=cloudWhere to get your token
Platform | How |
Atlassian Cloud | Go to API Tokens → Create API token |
Jira Server/DC | Go to your Jira profile → Personal Access Tokens → Create token |
3. Connect to VS Code
Add this to your VS Code settings.json (or workspace .vscode/settings.json):
{
"mcp": {
"servers": {
"jira": {
"command": "node",
"args": ["/absolute/path/to/jira-mcp-server/dist/index.js"],
"env": {
"JIRA_BASE_URL": "https://yourcompany.atlassian.net",
"JIRA_EMAIL": "you@yourcompany.com",
"JIRA_API_TOKEN": "your-token-here",
"JIRA_AUTH_TYPE": "cloud"
}
}
}
}
}Tip: Replace
/absolute/path/to/jira-mcp-serverwith the actual path on your machine.
Related MCP server: Jira Stories MCP Server
Available Tools
Tool | Description |
| Search issues with JQL |
| Get full details of an issue by key |
| Create a new issue |
| Update fields on an existing issue |
| Add a comment to an issue |
| List available status transitions |
| Move an issue to a new status |
| Assign an issue to a user |
| List all accessible projects |
| Get the authenticated user's profile |
Example Prompts (in Copilot Chat)
"Show me Jira issues assigned to me"
"Get details of PROJ-123"
"Create a bug in project PROJ: Login page crashes on Safari"
"Move PROJ-456 to In Progress"
"Add a comment to PROJ-789: Fixed in commit abc123"
Available Tools
10 toolsadd_commentC
Add a comment to a Jira issue.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Comment body (plain text or Jira wiki markup) | |
| issueKey | Yes | Issue key, e.g. PROJ-123 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so the description carries the full burden of behavioral disclosure. It only states the action without any side effects, permissions, or expectations about the operation. An agent cannot learn whether the comment appends to existing comments, whether it is reversible, or what the response looks like. This is a significant gap for a mutation tool.
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 that communicates the core purpose without extra words. It is appropriately front-loaded and has no waste. However, it offers no additional structure or detail beyond the bare action, which keeps it from a 5.
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 no annotations and no output schema, the description is incomplete. It lacks any mention of required permissions, side effects, or result expectations. An agent has to rely on general knowledge of Jira APIs, leaving room for misinterpretation. A richer description would improve completeness.
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 input schema already provides full descriptions for both parameters (issueKey and body), so the baseline is 3. The description adds no extra semantic value beyond the schema, such as format nuance or relationships between parameters. It neither compensates nor subtracts from the schema's 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 clearly states the action ('Add a comment') and the target resource ('a Jira issue'). It is specific enough to distinguish from siblings like create_issue or update_issue, though it doesn't explicitly differentiate itself. It lacks the explicit sibling comparison that would make it 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?
There is no guidance on when to use this tool versus alternatives. With siblings like create_issue, update_issue, and transition_issue, an agent must infer when a comment is appropriate. No prerequisites or conditions are mentioned, leaving the decision entirely to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
assign_issueA
Assign a Jira issue to a user. For Cloud use accountId, for Server use username.
| Name | Required | Description | Default |
|---|---|---|---|
| assignee | Yes | Account ID (Cloud) or username (Server/DC) | |
| issueKey | Yes | Issue key, e.g. PROJ-123 |
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 that it assigns (a mutation) but discloses no permissions requirements, side effects, or error conditions. The Cloud/Server note is a behavioral distinction but minimal for a state-changing operation.
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?
A single sentence with a conditional clause, no filler. The primary action is front-loaded, and the format caveat is placed immediately after. Every word earns its place.
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 simple two-parameter mutation with no output schema, the description covers the core purpose and the parameter format. It omits details like required permissions or behavior on invalid input, but those are common for assign operations and the description is adequate for an agent to infer typical API behavior.
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 coverage is 100%, giving a baseline of 3. The description adds critical meaning beyond the schema by explaining when to use accountId vs username, which resolves ambiguity in the assignee parameter and improves correct usage.
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?
States the verb 'assign', resource 'Jira issue', and target 'user', and clearly distinguishes from sibling tools like create_issue, update_issue, and transition_issue. The Cloud vs Server distinction further clarifies the operation's 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?
Explicitly gives the condition for using the assignee format (Cloud vs Server) and the context that it assigns a user to an issue. Does not explicitly say 'do not use for X' but the sibling names and action verb make the intended use clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_issueB
Create a new Jira issue in a project.
| Name | Required | Description | Default |
|---|---|---|---|
| summary | Yes | Issue summary / title | |
| issueType | No | Issue type name, e.g. "Bug", "Story", "Task" | Task |
| projectKey | Yes | Project key, e.g. PROJ | |
| description | No | Issue description (plain text or Jira wiki markup) |
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 that it creates an issue, implying a mutation, but it does not mention any side effects, permission requirements, or what happens to the issue (e.g., default status, sequence numbers). It also does not clarify whether the operation is reversible or what response to expect. This is a significant gap for a creation action.
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, concise sentence: 'Create a new Jira issue in a project.' It is front-loaded with the action and resource, and there is no fluff. While it is short, it is appropriately sized for the limited information it conveys; it does not waste words, though one might argue it could include a bit more context without becoming verbose.
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 tool with 4 parameters (2 required), no output schema, and no annotations, the description is notably incomplete. It does not mention which parameters are required, how to specify issue type or description, or any constraints like project key existence. The agent must rely entirely on the schema and infer usage. The lack of usage guidelines makes the tool harder to invoke correctly, especially when compared to sibling tools.
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 100% because every parameter (summary, issueType, projectKey, description) has a description in the schema. The tool description adds no additional insight beyond what the schema already provides. Per the baseline, with full coverage, a score of 3 is appropriate—the schema does the heavy lifting, and the description does not enhance parameter understanding.
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 'Create' and the resource 'a new Jira issue in a project.' This is specific enough to distinguish from sibling tools like search_issues, get_issue, and update_issue, which have different verbs. The purpose is unambiguous and immediately understandable.
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 does not mention prerequisites (e.g., needing a valid project key) or conditions under which creation is appropriate, nor does it reference any sibling tools. An agent must infer when to create an issue based solely on the verb, which is insufficient given the rich set of sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_issueA
Get full details of a single Jira issue by its key (e.g. PROJ-123).
| Name | Required | Description | Default |
|---|---|---|---|
| issueKey | Yes | Issue key, e.g. PROJ-123 |
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. 'Get' implies a read-only operation, but it doesn't disclose permissions, error behavior, or what 'full details' precisely entails. It adds minimal behavioral context beyond the obvious.
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?
A single, front-loaded sentence that states the primary action and resource without any wasted words. It is appropriately sized for a simple getter.
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 simple read-only tool with one parameter and no output schema, the description is adequate but vague on return details. 'Full details' is not precise, and with no output schema the description should clarify what fields are returned or any limitations.
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 100%, and the parameter issueKey is fully described in the schema. The description repeats the example 'PROJ-123' but adds no additional semantic value beyond what the schema already provides.
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 uses a specific verb ('Get') with a clear resource ('full details of a single Jira issue') and method of identification (key). It clearly distinguishes from siblings like search_issues (multiple) or update_issue (mutation).
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?
While it doesn't explicitly state when not to use it, the purpose is so specific to a single issue retrieval that an agent can infer it should be used when a known issue key is available. It implies the alternative search_issues for broader queries, though it doesn't name it explicitly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_myselfA
Get the profile of the currently authenticated Jira user.
| 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. It indicates a read operation ('Get') but does not disclose any additional behavioral traits such as authentication requirements, potential errors, or response structure. For a simple read-only tool, this is adequate but not rich.
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, concise sentence that front-loads the action and resource. There is no wasted wording, and it efficiently conveys everything an agent needs to understand the tool's 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?
With no parameters, no output schema, and a simple self-profile read, the description is largely complete. It could be improved by explicitly noting the return value (e.g., 'returns the user object'), but given the simplicity and the lack of complex constraints, a 4 is appropriate.
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 zero parameters, so the description need not explain any parameter semantics. The baseline of 4 applies because the description correctly implies no inputs are required; it adds no extraneous parameter information.
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 ('Get') and the resource ('profile of the currently authenticated Jira user'). It is specific and immediately distinguishes itself from sibling tools that operate on issues, projects, or comments.
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?
There is no explicit guidance on when to use this tool versus alternatives, but given that no sibling tool serves a similar purpose (e.g., no other user-profile tool exists), the usage context is implicitly obvious. Still, the description does not explicitly state 'use this when you need the current user's profile,' so it earns a 3 rather than a higher score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_transitionsA
Get available status transitions for an issue (useful before transitioning).
| Name | Required | Description | Default |
|---|---|---|---|
| issueKey | Yes | Issue key, e.g. PROJ-123 |
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. The verb 'Get' implies a read-only operation with no side effects, which is adequate for a simple getter. But it does not explicitly state read-only behavior, permissions, or any other behavioral traits (e.g., rate limits, error conditions). For a low-risk read operation this is minimally sufficient, but it adds no extra disclosure.
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?
A single, front-loaded sentence that states the core purpose and a practical use case. There is zero waste; every word adds value.
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 single well-documented parameter and no output schema or annotations, the description covers essentials. It even relates to the transition_issue workflow. It could go further by stating that transitions are the input for transition_issue, but the current phrasing largely suffices.
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 100%—the only parameter, issueKey, is fully documented with an example. The description adds no additional meaning beyond what the schema already provides, so the baseline 3 applies.
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 uses a specific verb ('Get') and resource ('available status transitions for an issue'), which clearly distinguishes it from sibling tools like transition_issue (which performs a transition) and get_issue (which retrieves issue details). The purpose is immediately understood.
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 phrase 'useful before transitioning' provides clear context on when to call this tool—prior to invoking transition_issue. However, it does not explicitly name alternatives or state when not to use it, so it stops short of full exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_projectsA
List all Jira projects accessible to the authenticated user.
| 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. It conveys that the operation is a read-only listing and includes an authentication scope ('accessible to the authenticated user'), but it does not describe output shape, pagination, or any side effects. For a simple listing tool this is partially sufficient, but more detail on the return format would be better.
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 sentence that front-loads the primary action and scope. It contains zero filler and every word contributes meaning, making it perfectly concise and well-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?
With no output schema and no parameters, the description must provide enough information for an agent to know what to expect from the call. It states that it lists projects, but does not indicate the fields or structure of each project object in the response. This leaves a gap for an agent that needs to use the returned data in subsequent operations, so a score of 3 is warranted.
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 accepts zero parameters, so there is nothing to explain. Per the rubric, a baseline of 4 applies for 0 parameters, and the description does not need to add parameter-level detail since none exist.
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 specific action (List), the resource (Jira projects), and the scope ('accessible to the authenticated user'). It is immediately distinct from sibling tools like search_issues and get_issue, which target issues rather than projects.
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 clear context: it lists all projects the user can access, which implies when to use it (when a project list is needed). However, it does not explicitly mention when not to use it or point to alternatives. Since the sibling tools operate on issues, the distinction is obvious, but explicit exclusion is missing, so a 4 is appropriate rather than a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_issuesA
Search Jira issues using JQL. Returns key, summary, status, assignee, priority, and type.
| Name | Required | Description | Default |
|---|---|---|---|
| jql | Yes | JQL query string, e.g. "assignee = currentUser() AND status != Done ORDER BY updated DESC" | |
| maxResults | No | Max results to return (default 20) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the burden of behavioral disclosure. It states what the tool returns (key, summary, status, etc.) but does not explicitly indicate it is read-only, nor does it mention any prerequisites, rate limits, or side effects. For a search operation, the absence of an explicit read-only note is a notable 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 sentence, front-loaded with the action ('Search Jira issues using JQL') and immediately followed by the return fields. There is zero filler, and every word earns its place.
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?
No output schema is defined, so the description appropriately lists the return fields (key, summary, status, assignee, priority, type), giving agents a clear picture of what to expect. It does not mention pagination behavior for maxResults or error conditions, but these are adequately covered by the schema and are not essential for this simple search tool.
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 input schema provides 100% description coverage for both parameters (jql and maxResults), including an example for jql. The description adds no additional parameter-level information beyond what the schema already conveys, so it meets the baseline without exceeding it.
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 is specific: 'Search Jira issues using JQL' uses a clear verb and resource, and it lists the returned fields. It is distinct from sibling tools like get_issue, which retrieves a single issue, and mutation tools like create_issue or update_issue. No ambiguity about what this tool does.
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 clearly indicates this tool is for searching issues via JQL, which is a use case distinct from the sibling tools (e.g., get_issue for a single known issue). However, it does not explicitly state when not to use it or mention alternatives, though given it is the only search tool, the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transition_issueA
Transition a Jira issue to a new status. Use get_transitions first to find the right transition ID.
| Name | Required | Description | Default |
|---|---|---|---|
| comment | No | Optional comment to add with the transition | |
| issueKey | Yes | Issue key, e.g. PROJ-123 | |
| transitionId | Yes | Transition ID (from get_transitions) |
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 conveys that this is a state-changing operation but does not disclose side effects (e.g., whether the optional comment is attached, whether the transition is reversible), error behavior for invalid transition IDs, or any permissions needed. Only the hint about fetching the transition ID from get_transitions adds slight behavioral context.
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?
Two sentences with zero waste. The action is front-loaded in the first sentence, and the prerequisite workflow fills the second. Every word earns its place, and the structure guides the agent from action to necessary precursor.
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 no annotations, no output schema, and 3 parameters (2 required), the description is adequate but thin. It correctly names the prerequisite get_transitions call, but omits the response/return value on success and any error behavior. Given the tool's workflow complexity and lack of structured annotation coverage, more behavioral context would improve completeness.
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 100%, so the schema already documents all three parameters, including that transitionId comes from get_transitions. The description adds no new meaning beyond the schema — it merely reinforces the transitionId sourcing. Baseline 3 is appropriate given the high 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 uses a specific verb ('Transition') with a clear resource ('a Jira issue') and states the outcome ('to a new status'). This differentiates it from the sibling update_issue, which changes fields rather than status. It is not a tautology of the tool name, though it does not explicitly name the sibling it differs from.
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 gives an explicit prerequisite workflow: 'Use get_transitions first to find the right transition ID.' This tells the agent the correct order of operations and implies that the transitionId parameter must come from that call. However, it does not state when NOT to use this tool relative to alternatives like update_issue or assign_issue.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_issueB
Update fields on an existing Jira issue.
| Name | Required | Description | Default |
|---|---|---|---|
| fields | Yes | Object of fields to update, e.g. { "summary": "New title", "priority": { "name": "High" } } | |
| issueKey | Yes | Issue key, e.g. PROJ-123 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description bears the full burden of behavioral disclosure. It only says 'Update fields on an existing Jira issue,' which does not disclose behaviors such as whether updates are partial or full replacement, error handling for non-existent issues, authentication requirements, or the response format. This is a significant gap for a mutation tool.
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 that gets straight to the point. It is front-loaded with the verb and resource, and every word earns its place. There is no filler or redundant information.
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 moderate complexity (nested fields object) and the lack of annotations and output schema, the description is incomplete. It does not clarify whether updates are partial or whole-field replacements, what happens if the issue does not exist, or what the tool returns. An agent would need additional context to use it correctly beyond the basic purpose.
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 input schema already fully describes both parameters (issueKey with an example, fields with an example). The description adds no extra meaning beyond what the schema provides, so the baseline of 3 applies. There is no additional clarification or nuance offered by the description.
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 tool's function: 'Update fields on an existing Jira issue.' It specifies a verb (update), a resource (fields on an existing issue), and implies the issue already exists, distinguishing it from create_issue, transition_issue, and assign_issue. This is both specific and non-overlapping with its siblings.
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 only states what the tool does, with no explicit guidance on when to use it versus alternatives. It does not mention conditions like 'use this instead of create_issue when the issue already exists' or 'use this for field modifications, transition_issue for status changes.' The usage is implied by the name and description, but no exclusions or alternatives are stated.
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.
10 tool updates
v1.0.0- First observed
add_comment - First observed
assign_issue - First observed
create_issue - First observed
get_issue - First observed
get_myself - First observed
get_transitions - First observed
list_projects - First observed
search_issues - First observed
transition_issue - First observed
update_issue
TDQS
Scored across 10 tools
Each tool has a clear, distinct purpose: search vs. get, create vs. update, comment, transitions, assignment, project listing, and user profile. There is no ambiguity between tools; an agent can reliably select the correct one based on the action needed.
All tools follow a consistent verb_noun pattern in snake_case (e.g., search_issues, get_issue, create_issue, add_comment). Even the 'get_*' tools differ by object (issue, transitions, myself), maintaining predictability. No mixed conventions or vague verbs.
With 10 tools, the server is well-scoped for Jira's core functionality. Each tool serves a necessary purpose, covering create, read, update, search, comments, transitions, assignment, and user/project context. No redundancy or bloat.
The set covers the primary Jira workflows: issue lifecycle (create, get, update, transition, assign), search, comments, and context (projects, user). Minor gaps exist (e.g., no delete_issue, no link_issue), but these are not critical for most automation tasks and can be worked around.
Maintenance
Related MCP Connectors
Connect to Atlassian Jira, Confluence, Loom, and more to search, create, and manage your work.
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
Connect AI assistants to your GitHub-hosted Obsidian vault to seamlessly access, search, and analy…
Plan Salesforce deploys, open pull requests and trigger pipelines from your AI client.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to search, view, create, and update JIRA issues using natural language commands and JQL queries.60 npmApache 2.0
- AlicenseNot gradedqualityDmaintenanceConnects Jira projects to AI assistants, enabling natural language queries to view, search, and filter stories with real-time access to descriptions, comments, status, and metadata without leaving your development environment.60 npmApache 2.0
- AlicenseNot gradedqualityDmaintenanceEnables searching, reading, listing, creating, and updating Confluence pages via natural language in GitHub Copilot.6 npmMIT
- AlicenseNot gradedqualityAmaintenanceSupercharge your AI assistant with seamless Jira integration. Enables AI assistants like GitHub Copilot and Claude to interact with your Jira Cloud instance.281 npmMIT