Skip to main content
Glama

Jira MCP Server

A Model Context Protocol (MCP) server for Jira integration, enabling AI assistants to interact with Jira issues, comments, and custom fields through a standardized interface.

Features

This MCP server provides the following tools:

Tool

Description

get_my_issues

Get all issues currently assigned to you

get_issue_details

Get full details of a specific Jira issue

add_comment

Add a comment to a specified Jira issue

get_my_work_summary

Get a summary of issues you've worked on within a date range

get_team_activity

Get recent issue updates from configured team members

get_project_components

Get all available components for a Jira project

update_issue_field

Update supported custom fields on a Jira issue

update_progress

Update the Progress Update field with template-aware behavior

create_issue

Create a new issue in Jira with support for custom fields

get_sprint_tasks

Retrieve sprint tasks for the current week or next week

Related MCP server: Jira MCP

Prerequisites

  • Node.js: v18.0.0 or higher

  • npm: v8.0.0 or higher

  • Jira Cloud Account: With API access enabled

  • Jira API Token: Generated from your Atlassian account

Installation

  1. Clone the repository:

    git clone <repository-url>
    cd jira-mcp
  2. Install dependencies:

    npm install
  3. Build the project:

    npm run build

Configuration

Environment Variables

The server requires the following environment variables:

Variable

Description

Example

JIRA_BASE_URL

Your Jira instance base URL

https://your-org.atlassian.net

JIRA_USER_EMAIL

Your Jira account email

user@example.com

JIRA_API_TOKEN

Jira API token (Generate here)

ATATT3xFfGF0...

JIRA_CURRENT_USER

(Optional) Override current user for queries

currentuser()

JIRA_TEAM_MEMBERS

(Optional) Comma-separated list of team member emails

user1@example.com,user2@example.com

Usage

Starting the Server

# Production
npm start

# Development (with hot reload)
npm run dev

MCP Client Configuration

Add the server to your MCP client configuration:

{
  "mcpServers": {
    "jira": {
      "command": "node",
      "args": ["/path/to/jira-mcp/dist/index.js"],
      "env": {
        "JIRA_BASE_URL": "https://your-org.atlassian.net",
        "JIRA_USER_EMAIL": "your-email@example.com",
        "JIRA_API_TOKEN": "your-api-token",
        "JIRA_TEAM_MEMBERS": "teammate1@example.com,teammate2@example.com"
      }
    }
  }
}

Supported Custom Fields

The following custom fields can be updated using update_issue_field:

Field Name

Field ID

Type

Description

Decision Needed

customfield_15111

Rich text (ADF)

Flag if a decision is required

Progress Update

customfield_15112

Rich text (ADF)

Weekly progress status

Decision Maker(s)

customfield_15113

User picker

Person responsible for decisions

Risks/Blockers

customfield_15115

Rich text (ADF)

Current risks or blockers

Completion Percentage

customfield_15116

Number

Progress percentage (0-100)

Health Status

customfield_15117

Select

Project health (On Track, At Risk, etc.)

API Reference

get_my_issues

Returns all unresolved issues assigned to the current user.

Parameters: None

Returns: Array of issues with key, summary, status, priority, updated


get_issue_details

Get full details of a specific issue.

Parameters:

  • issueKey (string, required): The issue key (e.g., "PROJ-123")

Returns: Issue object with key, summary, description, status, priority, assignee, reporter, created, updated, comments


add_comment

Add a comment to an issue.

Parameters:

  • issueKey (string, required): The issue key

  • commentBody (string, required): The comment text

Returns: { success: boolean, commentId: string, created: string }


get_my_work_summary

Get issues you've worked on within a date range.

Parameters:

  • startDate (string, required): Start date in YYYY-MM-DD format

  • endDate (string, required): End date in YYYY-MM-DD format

Returns: Array of issues with activity type


get_team_activity

Get recent updates from team members.

Parameters:

  • timeframeDays (number, optional): Days to look back (default: 7)

Returns: Array of activity items with issueKey, teamMember, activityType, timestamp, summary


update_issue_field

Update a custom field on an issue.

Parameters:

  • issueKey (string, required): The issue key

  • fieldNameOrId (string, required): Field name or ID

  • value (string | number | object, required): Value to set

Returns: { success: boolean, fieldId: string, fieldName: string }


update_progress

Update the Progress Update field with template awareness.

Parameters:

  • issueKey (string, required): The issue key

  • refreshDate (boolean, optional): Update date only, preserve content

  • weeklyUpdate (string, optional): Weekly update text

  • delivered (string, optional): What was delivered

  • whatsNext (string, optional): Upcoming work

Returns: { success: boolean, updatedSections: string[], parsedExisting: object }

The Progress Update field uses a structured template:

  • ℹ️ Update for week of [date]: - Weekly status

  • What we've delivered so far: - Accomplishments

  • What's next: - Upcoming work


get_project_components

Get all available components for a Jira project.

Parameters:

  • projectKey (string, required): The project key (e.g., "TSSE")

Returns: { components: [{ id: string, name: string, description?: string }] }


create_issue

Create a new issue in Jira with support for standard and custom fields.

Parameters:

  • projectKey (string, required): The project key (e.g., "TSSE")

  • issueType (string, required): The issue type (e.g., "Epic", "Story", "Task", "Bug")

  • summary (string, required): Issue summary/title

  • description (string, optional): Issue description (plain text)

  • assignee (string, optional): Assignee accountId or "currentuser()" for current user

  • priority (string, optional): Priority name (e.g., "High", "Medium", "Low")

  • labels (string[], optional): Array of labels to apply

  • duedate (string, optional): Due date in YYYY-MM-DD format

  • components (string[], optional): Array of component names

  • healthStatus (string, optional): Health Status value (e.g., "On Track", "At Risk", "Off Track")

  • completionPercentage (number, optional): Completion percentage (0-100)

  • decisionNeeded (string, optional): Decision Needed field content

  • risksBlockers (string, optional): Risks/Blockers field content

  • progressUpdate (object, optional): Progress Update with weeklyUpdate, delivered, whatsNext

  • customFields (object, optional): Additional custom fields as key-value pairs

Returns: { success: boolean, key: string, id: string, self: string }


get_sprint_tasks

Retrieve sprint tasks for the current week or next week. Sprint tasks are tagged with labels in the format MonDD-DD (e.g., Dec15-19 for December 15-19).

Parameters:

  • week (enum, required): Which week to retrieve - "this_week" or "next_week"

  • scope (enum, required): Scope of tasks - "my_tasks" for current user only, "team_tasks" for all team tasks

Returns:

{
  "sprintLabel": "Dec15-19",
  "weekRange": { "monday": "2024-12-15", "friday": "2024-12-19" },
  "tasks": [{ "key": "PROJ-123", "summary": "...", "status": "...", "priority": "...", "assignee": "...", "updated": "..." }]
}

Development

Building

npm run build

Project Structure

jira-mcp/
├── src/
│   ├── index.ts        # MCP server entry point and tool definitions
│   └── jira-client.ts  # Jira API client wrapper
├── dist/               # Compiled JavaScript output
├── package.json
├── tsconfig.json
└── README.md

Contributing

  1. Fork the repository

  2. Create a feature branch (git checkout -b feature/amazing-feature)

  3. Commit your changes (git commit -m 'Add amazing feature')

  4. Push to the branch (git push origin feature/amazing-feature)

  5. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Available Tools

11 tools
add_commentAdd CommentB

Add a comment to a specified Jira issue

ParametersJSON Schema
NameRequiredDescriptionDefault
issueKeyYesThe issue key (e.g., "PROJ-123")
commentBodyYesThe comment text to add

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNo
createdNo
successYes
commentIdNo

TDQS

B3.1/5.0
Behavior2/5

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 the tool adds a comment but doesn't mention whether this requires specific permissions, if it's a write operation, what happens on success/failure, or any rate limits. For a mutation tool with zero annotation coverage, this leaves critical behavioral traits undocumented.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that gets straight to the point with no wasted words. It's appropriately sized for a simple tool and front-loads the core functionality effectively.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that an output schema exists (which handles return values), the description doesn't need to explain outputs. However, for a mutation tool with no annotations and multiple sibling tools, the description should provide more context about when to use it and behavioral implications to be complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 100%, with both parameters ('issueKey' and 'commentBody') clearly documented in the schema. The description doesn't add any additional parameter semantics beyond what the schema already provides, so it meets the baseline for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

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 target resource ('to a specified Jira issue'), making the purpose immediately understandable. However, it doesn't differentiate this tool from sibling tools like 'update_issue_field' which might also handle comments, missing the opportunity to clarify its specific scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 'update_issue_field' or 'create_issue', nor does it mention prerequisites such as issue existence or user permissions. It simply states what the tool does without contextual usage information.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_issueCreate IssueB

Create a new issue in Jira. Supports standard fields (summary, description, assignee, priority, labels) and custom fields (Health Status, Completion Percentage, Progress Update, etc.)

ParametersJSON Schema
NameRequiredDescriptionDefault
projectKeyYesThe project key (e.g., "TSSE")
issueTypeYesThe issue type (e.g., "Epic", "Story", "Task", "Bug")
summaryYesIssue summary/title
descriptionNoIssue description (plain text)
assigneeNoAssignee accountId or "currentuser()" for current user
priorityNoPriority name (e.g., "High", "Medium", "Low")
labelsNoArray of labels to apply
duedateNoDue date in YYYY-MM-DD format
componentsNoArray of component names
healthStatusNoHealth Status value (e.g., "On Track", "At Risk", "Off Track")
completionPercentageNoCompletion percentage (0-100)
decisionNeededNoDecision Needed field content
risksBlockersNoRisks/Blockers field content
progressUpdateNoProgress Update field with three sections
customFieldsNoAdditional custom fields as key-value pairs (e.g., {"customfield_14707": [{"value": "Data"}]})

Output Schema

ParametersJSON Schema
NameRequiredDescription
idNo
keyNo
selfNo
errorNo
successYes

TDQS

B3.2/5.0
Behavior2/5

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. While it mentions what fields are supported, it doesn't describe what happens after creation (e.g., does it return the new issue ID?), what permissions are required, whether there are rate limits, or what validation occurs. For a mutation tool with 15 parameters, this represents significant gaps in behavioral understanding.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is efficiently structured in a single sentence that conveys the core purpose and scope. The parenthetical examples of fields add useful context without unnecessary elaboration. While it could potentially benefit from a second sentence about behavioral aspects, the existing text is well-focused and wastes no words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (15 parameters, nested objects) and the presence of an output schema, the description provides adequate basic information about what the tool does. However, for a mutation tool with no annotations, it should ideally include more about permissions, side effects, or typical responses. The existence of an output schema reduces the need to describe return values, but other behavioral aspects remain underspecified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description mentions 'standard fields' and 'custom fields' with examples, which adds some context beyond the schema. However, with 100% schema description coverage, the schema already documents all 15 parameters thoroughly. The description provides high-level categorization but doesn't add meaningful semantic details about parameter interactions, dependencies, or usage patterns that aren't already in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Create') and resource ('new issue in Jira'), making the purpose immediately apparent. It distinguishes this tool from siblings like 'update_issue_field' or 'add_comment' by emphasizing creation rather than modification or commenting. The mention of both standard and custom fields provides additional specificity about what can be created.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 'update_issue_field' or 'search_issues'. There's no mention of prerequisites, constraints, or typical use cases. While the purpose is clear, the agent receives no help in deciding when this specific creation tool is appropriate versus other issue-related operations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_issue_detailsGet Issue DetailsB

Get full details of a specific Jira issue

ParametersJSON Schema
NameRequiredDescriptionDefault
issueKeyYesThe issue key (e.g., "PROJ-123")

Output Schema

ParametersJSON Schema
NameRequiredDescription
keyNo
errorNo
parentNo
statusNo
createdNo
projectNo
summaryNo
updatedNo
assigneeNo
commentsNo
priorityNo
reporterNo
descriptionNo

TDQS

B3.1/5.0
Behavior2/5

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 states the tool retrieves details but doesn't specify what 'full details' includes (e.g., fields, attachments, comments), whether it's a read-only operation, authentication requirements, rate limits, or error handling. This leaves significant gaps in understanding the tool's behavior beyond basic purpose.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the core purpose without any wasted words. It directly communicates the tool's function in a clear and structured manner, making it easy for an agent to parse and understand quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's low complexity (single required parameter) and the presence of an output schema (which handles return values), the description is minimally adequate. However, with no annotations and incomplete behavioral details, it doesn't fully compensate for the lack of structured safety or operational context, leaving room for improvement in guiding the agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, with the 'issueKey' parameter clearly documented in the schema itself. The description adds no additional parameter semantics beyond implying a single issue is targeted, so it meets the baseline of 3 where the schema does the heavy lifting without extra value from the description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Get full details') and resource ('a specific Jira issue'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'search_issues' or 'get_my_issues', which might also retrieve issue information but with different scopes or filters.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 (e.g., needing an issue key), exclusions, or comparisons to siblings like 'search_issues' for broader queries or 'get_my_issues' for user-specific issues, leaving the agent to infer usage from context alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_my_issuesGet My IssuesB

Get all issues currently assigned to the configured CURRENT_USER

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNo
issuesNo

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It states it 'gets all issues' but doesn't disclose behavioral traits like pagination, rate limits, authentication needs, or what 'all issues' entails (e.g., open/closed status). The description is minimal and lacks critical operational context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the core functionality without any wasted words. It's appropriately sized for a simple tool with no parameters.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has no parameters and an output schema exists, the description is minimally complete. However, with no annotations and a read operation, it should ideally mention behavioral aspects like return format or scope, but the output schema mitigates some gaps. It's adequate but has clear room for improvement.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has 0 parameters with 100% schema description coverage, so no parameter documentation is needed. The description doesn't add parameter semantics, but this is appropriate given the empty schema, warranting a baseline score of 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Get') and resource ('issues currently assigned to the configured CURRENT_USER'), making the purpose specific and understandable. It distinguishes from siblings like 'search_issues' by focusing on user-assigned issues, though it doesn't explicitly name alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context (retrieving issues assigned to the current user), but doesn't provide explicit guidance on when to use this tool versus alternatives like 'search_issues' or 'get_issue_details'. No exclusions or prerequisites are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_my_work_summaryGet My Work SummaryA

Get a summary of issues the CURRENT_USER has worked on (updated, commented, or transitioned) within a date range

ParametersJSON Schema
NameRequiredDescriptionDefault
startDateYesStart date in YYYY-MM-DD format
endDateYesEnd date in YYYY-MM-DD format

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNo
issuesNo

TDQS

A4/5.0
Behavior3/5

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 clearly indicates this is a read operation ('Get') and specifies the scope (current user, date range, specific activities). However, it doesn't mention potential limitations like rate limits, authentication requirements, or what 'summary' entails (e.g., aggregated counts vs detailed list). The description adds useful context but lacks comprehensive behavioral details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured sentence that efficiently communicates the tool's purpose, scope, and parameters. Every word earns its place with no redundancy or unnecessary elaboration, making it easy for an agent to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (date-range filtered summary), no annotations, but with a complete input schema and an output schema (implied by 'Has output schema: true'), the description is reasonably complete. It covers the core functionality and scope adequately, though additional behavioral context would enhance completeness for a tool with no annotation support.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already fully documents both parameters (startDate and endDate) with format details. The description adds value by explaining the semantic purpose of these parameters ('within a date range'), but doesn't provide additional syntax or constraints beyond what the schema offers. This meets the baseline for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Get a summary') and resource ('issues the CURRENT_USER has worked on'), with precise scope details ('updated, commented, or transitioned within a date range'). It effectively distinguishes from siblings like 'get_my_issues' by focusing on summary rather than listing, and from 'get_team_activity' by being user-specific.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use this tool: when needing a summary of the current user's work activities within a date range. It doesn't explicitly state when not to use it or name alternatives, but the context is sufficiently clear for an agent to understand its purpose relative to siblings like 'get_my_issues' or 'search_issues'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_project_componentsGet Project ComponentsB

Get all available components for a Jira project

ParametersJSON Schema
NameRequiredDescriptionDefault
projectKeyYesThe project key (e.g., "TSSE")

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNo
componentsNo

TDQS

B3.1/5.0
Behavior2/5

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 states 'Get all available components' but does not clarify if this is a read-only operation, requires authentication, has rate limits, returns paginated results, or handles errors. For a tool with zero annotation coverage, this leaves significant behavioral gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that directly states the tool's purpose without any unnecessary words. It is front-loaded and appropriately sized, making it easy for an agent to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's low complexity (one parameter) and the presence of an output schema, the description is minimally adequate. However, with no annotations and incomplete behavioral details, it does not fully compensate for the lack of structured context, leaving room for improvement in guiding the agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, with the 'projectKey' parameter clearly documented. The description adds no additional parameter semantics beyond what the schema provides, such as format examples or constraints, so it meets the baseline score of 3 for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get' and the resource 'all available components for a Jira project', making the purpose specific and understandable. However, it does not explicitly differentiate from sibling tools like 'get_issue_details' or 'search_issues', which might also involve project components indirectly, so it lacks sibling differentiation for a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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, exclusions, or compare to sibling tools such as 'get_issue_details' for component-specific details or 'search_issues' for broader queries, leaving the agent without contextual usage cues.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_sprint_tasksGet Sprint TasksA

Retrieve Sprint tasks for the current week or next week. Sprint tasks are tagged with labels in the format MonDD-DD (e.g., Dec15-19 for December 15-19).

Two query modes:

  • my_tasks: Retrieve tasks assigned to the current authenticated user for the specified week

  • team_tasks: Retrieve all tasks for the team for the specified week (regardless of assignee)

The tool automatically calculates the Monday-Friday date range and matches against the corresponding sprint label.

ParametersJSON Schema
NameRequiredDescriptionDefault
weekYesWhich week to retrieve sprint tasks for
scopeYesScope of tasks: "my_tasks" for current user only, "team_tasks" for all team tasks

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNo
tasksNo
weekRangeNoThe date range for the sprint week
sprintLabelNoThe sprint label used for the query (e.g., "Dec15-19")

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden and does well by explaining the tool automatically calculates Monday-Friday date ranges and matches sprint labels. It clarifies authentication context ('current authenticated user') and scope behavior. Could improve by mentioning output format or pagination.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Perfectly structured with purpose statement, two clear query mode definitions, and behavioral note about automatic date calculation. Every sentence adds essential information with zero waste. Front-loaded with core functionality.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 2 parameters with 100% schema coverage and an output schema exists, the description provides excellent context about what the tool does and when to use it. Could slightly improve by mentioning what information is returned in tasks, but output schema likely covers this.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with clear enum descriptions, so baseline is 3. The description adds value by explaining the semantic meaning of scope options (my_tasks vs team_tasks) and how week selection works with automatic date calculation, elevating it above baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'retrieve' and resource 'sprint tasks', specifying they are for 'current week or next week' and tagged with specific label formats. It distinguishes from siblings like get_my_issues or get_team_activity by focusing on sprint-specific tasks with date-based labels.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly defines two query modes (my_tasks vs team_tasks) with clear when-to-use guidance: 'my_tasks: Retrieve tasks assigned to the current authenticated user' and 'team_tasks: Retrieve all tasks for the team... regardless of assignee.' Also specifies temporal scope (this_week/next_week).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_team_activityGet Team ActivityB

Get recent issue updates (status changes, comments, assignments) from TEAM_MEMBERS

ParametersJSON Schema
NameRequiredDescriptionDefault
timeframeDaysNoNumber of days to look back (default: 7)

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNo
activitiesNo

TDQS

B3.1/5.0
Behavior2/5

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 states it's a read operation ('Get'), but doesn't mention permissions required, rate limits, pagination, error handling, or what the output looks like (though an output schema exists). For a tool with zero annotation coverage, this is a significant gap in transparency about how it behaves beyond basic functionality.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the core purpose without unnecessary words. It directly states what the tool does ('Get recent issue updates') and specifies the types and source, with zero waste or redundancy. Every part of the sentence earns its place by adding clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has one parameter with full schema coverage and an output schema exists, the description is minimally complete for a simple read operation. However, with no annotations and multiple sibling tools, it lacks context on usage guidelines and behavioral details like permissions or limitations. The output schema reduces the need to explain return values, but the description could better address when to use this versus alternatives.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds no parameter-specific information beyond what's in the input schema, which has 100% coverage for the single parameter 'timeframeDays'. The schema already describes it as 'Number of days to look back (default: 7)', so the description doesn't compensate or add extra meaning. With high schema coverage, the baseline is 3 even without param details in the description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get' and the resource 'recent issue updates' with specific types mentioned (status changes, comments, assignments) and the source 'from TEAM_MEMBERS'. It distinguishes from siblings like 'get_my_issues' by focusing on team-wide activity rather than personal issues. However, it doesn't explicitly differentiate from 'get_my_work_summary' or 'search_issues' which might overlap in scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 this over 'get_my_issues' for personal tracking, 'search_issues' for filtered queries, or 'get_my_work_summary' for summaries. There's no context about prerequisites, exclusions, or specific use cases, leaving the agent to infer usage from the purpose alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_issuesSearch IssuesA

Search for issues using JQL (Jira Query Language). Use this to find issues by parent/epic, assignee, status, labels, or any other criteria. Example JQL: "parent=TSSE-206", "assignee=currentuser() AND status="In Progress"", "labels=Dec15-19"

ParametersJSON Schema
NameRequiredDescriptionDefault
jqlYesJQL query string (e.g., "parent=EPIC-123", "project=TSSE AND status="To Do"")
maxResultsNoMaximum number of results to return (default: 50, max: 100)

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNo
totalNo
issuesNo

TDQS

A4/5.0
Behavior3/5

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 effectively describes the search functionality and provides JQL examples, but lacks details on permissions needed, rate limits, pagination behavior (beyond maxResults in schema), or what happens with invalid queries. It adds value but doesn't fully compensate for the absence of annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is efficiently structured with two sentences: the first states the purpose and usage context, and the second provides concrete JQL examples. Every sentence adds value, and it's front-loaded with essential information, making it highly concise and well-organized.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (search with JQL), no annotations, but a rich input schema (100% coverage) and an output schema (implied by context signals), the description is reasonably complete. It explains the core functionality and usage, though it could benefit from more behavioral context (e.g., error handling) to be fully comprehensive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 both parameters thoroughly. The description adds minimal value beyond the schema by mentioning JQL and giving examples, but doesn't provide additional syntax, format details, or constraints. This meets the baseline of 3 when schema coverage is high.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with a specific verb ('Search for issues') and resource ('issues'), and distinguishes it from siblings by specifying it uses JQL (Jira Query Language). It provides concrete examples of search criteria (parent/epic, assignee, status, labels), making the purpose unambiguous and differentiated from tools like 'get_my_issues' or 'get_issue_details'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use this tool ('Search for issues using JQL'), with examples of specific criteria like parent/epic, assignee, status, and labels. However, it doesn't explicitly state when NOT to use it or name alternatives (e.g., 'get_my_issues' for a simpler user-specific query), which prevents a perfect score.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_issue_fieldUpdate Issue FieldA

Update a custom field on a Jira issue. Supported fields: Decision Needed, Progress Update, Decision Maker(s), Risks/Blockers, Completion Percentage, Health Status. You can use either the field name or field ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
issueKeyYesThe issue key (e.g., "TSSE-984")
fieldNameOrIdYesField name or ID. Valid names: Decision Needed, Progress Update, Decision Maker(s), Risks/Blockers, Completion Percentage, Health Status
valueYesThe value to set. For rich text fields, provide plain text. For select fields, provide the option value. For user fields, provide accountId. For number fields, provide a number.

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNo
fieldIdNo
successYes
fieldNameNo

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden but lacks critical behavioral details. It doesn't disclose permission requirements, whether this is a destructive mutation, rate limits, error handling, or what happens to existing field values. The description only covers basic functionality without safety or operational context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with zero waste. The first sentence states the core purpose, the second provides essential usage detail about field identification. Every word serves a clear purpose and the structure is front-loaded with the most important information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given this is a mutation tool with no annotations and an output schema exists, the description is minimally adequate but incomplete. It covers what the tool does but lacks behavioral context about permissions, side effects, or error conditions that would be crucial for safe agent usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 thoroughly. The description adds minimal value by listing supported field names, which partially overlaps with the schema's 'fieldNameOrId' description. No additional parameter semantics beyond what's in the schema are provided.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Update a custom field on a Jira issue') and distinguishes it from siblings like 'update_progress' or 'add_comment' by specifying it's for custom fields only. It lists the exact supported fields, making the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage by listing supported fields, but doesn't explicitly state when to use this tool versus alternatives like 'update_progress' or general issue updates. No guidance on prerequisites, exclusions, or specific scenarios is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_progressUpdate ProgressA

Update the Progress Update field (customfield_15112) on a Jira issue. This field uses a structured template with three sections:

  • Weekly Update: "ℹ️ Update for week of [date]:" - automatically includes current date

  • Delivered: "✅ What we've delivered so far:"

  • What's Next: "❓ What's next:"

Options:

  • Use refreshDate=true to update just the date while preserving all existing content

  • Only sections you explicitly provide will be updated; others are preserved from existing content

ParametersJSON Schema
NameRequiredDescriptionDefault
issueKeyYesThe issue key (e.g., "TSSE-984")
refreshDateNoIf true, updates the date to today while preserving all existing content. Use this to "refresh" the progress update without changing the content.
weeklyUpdateNoText to add after the weekly header. Current date will be auto-inserted.
deliveredNoText describing what was delivered
whatsNextNoText describing upcoming work

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNo
successYes
parsedExistingNo
updatedSectionsNo

TDQS

A4.5/5.0
Behavior4/5

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 does an excellent job explaining the tool's behavior: it describes the structured template format, explains how sections are preserved/updated, and clarifies the refreshDate option's effect. The only minor gap is it doesn't mention authentication requirements or potential error conditions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is perfectly structured and concise. It starts with the core purpose, explains the template format clearly with bullet points, then provides usage options. Every sentence earns its place by adding essential information about how the tool behaves. No wasted words or redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that this is a mutation tool with no annotations but with an output schema, the description provides excellent completeness. It explains the structured template format, update behavior, parameter interactions, and usage patterns. The presence of an output schema means the description doesn't need to explain return values, and it covers all other essential aspects thoroughly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds significant value beyond the schema by explaining the structured template context, clarifying that 'only sections you explicitly provide will be updated; others are preserved,' and explaining the relationship between refreshDate and content preservation. This provides crucial semantic context not captured in the schema alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Update the Progress Update field (customfield_15112) on a Jira issue.' It specifies the exact field being modified and distinguishes this from sibling tools like update_issue_field by focusing on a specific structured template. The verb 'Update' is specific to this particular field's structured format.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use this tool: for updating a specific custom field with a structured template. It distinguishes this from general field updates (like update_issue_field) by focusing on the Progress Update field's specific format. However, it doesn't explicitly mention when NOT to use it or provide direct alternatives among siblings.

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.

  1. 11 tool updates
    • First observedadd_comment
    • First observedcreate_issue
    • First observedget_issue_details
    • First observedget_my_issues
    • First observedget_my_work_summary
    • First observedget_project_components
    • First observedget_sprint_tasks
    • First observedget_team_activity
    • First observedsearch_issues
    • First observedupdate_issue_field
    • First observedupdate_progress

TDQS

A3.7/5.0

Scored across 11 tools

Disambiguation4/5

Most tools have distinct purposes, but there is some overlap between get_issue_details and search_issues, as both can retrieve issue information. The descriptions clarify that get_issue_details is for a specific issue, while search_issues uses JQL for broader queries, reducing confusion. Other tools like add_comment, create_issue, and update_progress are clearly differentiated.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern using snake_case, such as add_comment, create_issue, and get_issue_details. This uniformity makes the tool set predictable and easy to navigate, with no deviations in naming conventions across the 11 tools.

Tool Count5/5

With 11 tools, the server is well-scoped for Jira operations, covering core workflows like issue management, commenting, searching, and project/sprint tracking. Each tool serves a specific purpose without redundancy, making the count appropriate for the domain.

Completeness4/5

The tool set provides comprehensive coverage for Jira interactions, including CRUD operations (create, read, update) and specialized functions like sprint management and team activity. Minor gaps exist, such as the lack of a delete_issue tool or direct issue transition capabilities, but agents can work around these using update_issue_field or search_issues.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Enables AI assistants to interact with Jira Cloud instances for comprehensive issue management including creating, updating, searching issues, managing comments, workflow transitions, and project metadata discovery. Supports JQL queries, user search, and custom field operations with secure API token authentication.
    12
    2,449
    8
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI assistants to manage Jira Cloud instances, including creating and updating issues, managing sprints and projects, adding comments, tracking worklogs, and searching with presets.
    4
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to interact with Jira Cloud through the REST API, supporting project management, issue operations (create, read, update, delete), JQL search, task assignments, and status transitions.
    -

Appeared in Searches