MCP server intelligence profile

JIRA MCP Server

An MCP server that provides tools to interact with JIRA for sprint management, issue tracking, and attachment handling

Local OnlySuppleAardvark
Awaiting current scanNpm · 1.0.13

The selected current version does not yet have completed public verification. Unknown does not mean clean or vulnerable.

1Distribution channel
21Independently observed tools
0Linked remote endpoints
AvailableVersion intelligence

Detailed security scan evidence is not public for this MCP yet. Public identity, registry metadata, and independently observed protocol inventory remain available.

Install and connect

Installation and connection instructions are shown only when supported by retained package, repository, or endpoint evidence.

Install @suppleaardvark/jira-mcp-server from npm

Version 1.0.13 declares 1 executable entrypoint.

npm install --save-exact @suppleaardvark/jira-mcp-server@1.0.13
npx -y -p @suppleaardvark/jira-mcp-server@1.0.13 @suppleaardvark/jira-mcp-server
MCP client configuration example
{
  "mcpServers": {
    "@suppleaardvark/jira-mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "-p",
        "@suppleaardvark/jira-mcp-server@1.0.13",
        "@suppleaardvark/jira-mcp-server"
      ]
    }
  }
}

Identity

Canonical slugjira-mcp-server-da84759eDeploymentLocal Only
Canonical packagenpm:@suppleaardvark/jira-mcp-serverRepositorySuppleAardvark/jira-mcp-server
First publishedLatest release
Last security verificationClassification confidence90%
PublicationDraftOfficial distributionNot verified

Distributions

ChannelIdentifierCurrent versionVersionsSource
npm@suppleaardvark/jira-mcp-server1.0.131Repository

Current release

PackageVersionPublished / observedInventorySecurity scan
npm@suppleaardvark/jira-mcp-server1.0.13CurrentSep 5, 202621 toolsSucceeded · 0 resources · 0 promptsEvidence restricted
Enterprise protection

Continuously monitor this MCP for security risk

Independently scan the exact version your agents use, receive alerts when its risk changes, and investigate every finding with retained version evidence.

  • Independent exact-version security scans
  • Continuous release and vulnerability monitoring
  • Risk-change alerts with capability context
  • Historical evidence and API exports
Custom pricingContact salesTailored to your organization, integrations, data needs, and support requirements.

Current version evidence

No public current-version evidence is available yet.

Current protocol inventory

2025-06-18Negotiated protocol
jira-mcpServer-reported name
1Capability groups
Aug 22, 2026Observed

Tools 21

ToolCategoryAnnotationsRisk
jira_add_commentAdd a comment to a JIRA issue.
Input schema
{
  "type": "object",
  "properties": {
    "issueKey": {
      "type": "string",
      "description": "The issue key (e.g., PROJ-123)"
    },
    "body": {
      "type": "string",
      "description": "The comment text"
    }
  },
  "required": [
    "issueKey",
    "body"
  ]
}
jira_create_issueCreate a new JIRA issue. Returns the created issue key and ID.
Input schema
{
  "type": "object",
  "properties": {
    "projectKey": {
      "type": "string",
      "description": "The project key (e.g., PROJ)"
    },
    "summary": {
      "type": "string",
      "description": "The issue summary/title"
    },
    "issueType": {
      "type": "string",
      "description": "The issue type (e.g., \"Task\", \"Bug\", \"Story\", \"Epic\", \"Sub-task\")"
    },
    "description": {
      "type": "string",
      "description": "The issue description"
    },
    "priority": {
      "type": "string",
      "description": "Priority name (e.g., \"High\", \"Medium\", \"Low\")"
    },
    "labels": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Array of labels to add to the issue"
    },
    "assignee": {
      "type": "string",
      "description": "Atlassian account ID of the assignee"
    },
    "parent": {
      "type": "string",
      "description": "Parent issue key (for subtasks or linking stories to epics)"
    },
    "components": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Array of component names to add to the issue"
    }
  },
  "required": [
    "projectKey",
    "summary",
    "issueType"
  ]
}
jira_download_attachmentDownload an attachment from JIRA to a local file path.
Input schema
{
  "type": "object",
  "properties": {
    "attachmentId": {
      "type": "string",
      "description": "The attachment ID (from jira_list_attachments)"
    },
    "outputPath": {
      "type": "string",
      "description": "Local file path to save the attachment"
    }
  },
  "required": [
    "attachmentId",
    "outputPath"
  ]
}
jira_get_active_sprintGet the currently active sprint for a specific board. Returns sprint ID, name, dates, and goal.
Input schema
{
  "type": "object",
  "properties": {
    "boardId": {
      "type": "number",
      "description": "The ID of the JIRA board"
    }
  },
  "required": [
    "boardId"
  ]
}
jira_get_backlog_statsGet aggregated statistics for issues matching a JQL query. Returns counts grouped by status, type, priority, and assignee by default. Supports custom pivoting on any field pair with aggregation actions (count, sum, avg, cardinality) and flexible field filters.
Input schema
{
  "type": "object",
  "properties": {
    "jql": {
      "type": "string",
      "description": "JQL query string (e.g., \"project = PROJ\")"
    },
    "boardId": {
      "type": "number",
      "description": "Filter by board ID (adds project filter based on board's project)"
    },
    "excludeResolved": {
      "type": "boolean",
      "description": "Exclude resolved/done issues (adds \"resolution IS EMPTY\" to JQL)"
    },
    "issueTypes": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Filter by issue types (e.g., [\"Bug\", \"Story\"])"
    },
    "assignees": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Filter by assignees (use \"unassigned\" for unassigned issues)"
    },
    "sprint": {
      "type": "number",
      "description": "Filter by sprint ID"
    },
    "groupBy": {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "status",
          "type",
          "priority",
          "assignee",
          "reporter",
          "labels",
          "components",
          "resolution",
          "project"
        ]
      },
      "description": "Fields to group by. If specified, replaces default aggregations with custom groupedBy results."
    },
    "pivot": {
      "type": "object",
      "description": "Custom pivot table configuration",
      "properties": {
        "rowField": {
          "type": "string",
          "enum": [
            "status",
            "type",
            "priority",
            "assignee",
            "reporter",
            "labels",
            "components",
            "resolution",
            "project"
          ],
          "description": "Field for pivot table rows"
        },
        "columnField": {
          "type": "string",
          "enum": [
            "status",
            "type",
            "priority",
            "assignee",
            "reporter",
            "labels",
            "components",
            "resolution",
            "project"
          ],
          "description": "Field for pivot table columns"
        },
        "action": {
          "type": "string",
          "enum": [
            "count",
            "sum",
            "avg",
            "cardinality"
          ],
          "description": "Aggregation action (default: count). Use sum/avg with valueField for numeric aggregations."
        },
        "valueField": {
          "type": "string",
          "description": "Custom field ID for sum/avg operations (e.g., customfield_10001 for story points)"
        }
      },
      "required": [
        "rowField",
        "columnField"
      ]
    },
    "fieldFilters": {
      "type": "array",
      "description": "Additional field-based filters applied via JQL",
      "items": {
        "type": "object",
        "properties": {
          "field": {
            "type": "string",
            "description": "JQL field name (e.g., status, priority, labels, customfield_10001)"
          },
          "operator": {
            "type": "string",
            "enum": [
              "eq",
              "in",
              "not",
              "contains",
              "empty",
              "notEmpty"
            ],
            "description": "Filter operator"
          },
          "value": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ],
            "description": "Filter value (string or array for \"in\" operator)"
          }
        },
        "required": [
          "field",
          "operator"
        ]
      }
    }
  },
  "required": [
    "jql"
  ]
}
jira_get_field_schemaGet available JIRA fields with their IDs, names, and types. Useful for discovering custom field IDs (e.g., finding the ID for "Story Points" to use in stats aggregations). Returns field metadata including schema type.
Input schema
{
  "type": "object",
  "properties": {
    "projectKey": {
      "type": "string",
      "description": "If provided, only return fields configured for this project. This shows which fields are actually in use, not just all fields in JIRA."
    },
    "customOnly": {
      "type": "boolean",
      "description": "If true, only return custom fields (excludes built-in fields like summary, status, etc.)"
    },
    "searchTerm": {
      "type": "string",
      "description": "Filter fields by name or ID (case-insensitive). E.g., \"story\" to find Story Points field."
    }
  }
}
jira_get_issueGet detailed information about a specific JIRA issue by its key (e.g., PROJ-123). Returns all fields by default including custom fields. Use the fields parameter to reduce response size.
Input schema
{
  "type": "object",
  "properties": {
    "issueKey": {
      "type": "string",
      "description": "The issue key (e.g., PROJ-123)"
    },
    "fields": {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "key",
          "summary",
          "description",
          "type",
          "status",
          "statusCategory",
          "priority",
          "assignee",
          "reporter",
          "created",
          "updated",
          "labels",
          "components",
          "attachmentCount",
          "commentCount",
          "parent",
          "customFields"
        ]
      },
      "description": "Fields to include in the response. Default: all fields. Use to reduce response size by specifying only needed fields."
    }
  },
  "required": [
    "issueKey"
  ]
}
jira_get_issue_commentsGet comments on a specific JIRA issue. Returns comment author, body, and creation date.
Input schema
{
  "type": "object",
  "properties": {
    "issueKey": {
      "type": "string",
      "description": "The issue key (e.g., PROJ-123)"
    },
    "maxResults": {
      "type": "number",
      "description": "Maximum number of comments (default: 20)"
    }
  },
  "required": [
    "issueKey"
  ]
}
jira_get_issue_historyGet the changelog/history of a JIRA issue. Returns all field changes, status transitions, and other modifications.
Input schema
{
  "type": "object",
  "properties": {
    "issueKey": {
      "type": "string",
      "description": "The issue key (e.g., PROJ-123)"
    },
    "maxResults": {
      "type": "number",
      "description": "Maximum number of history entries to return (default: 100)"
    }
  },
  "required": [
    "issueKey"
  ]
}
jira_get_my_sprint_issuesGet issues assigned to the current user in a specific sprint. Filters by assignee = currentUser(). Returns issue keys, summaries, statuses, and priorities sorted by status then priority by default. Use the fields parameter to customize which fields are returned.
Input schema
{
  "type": "object",
  "properties": {
    "sprintId": {
      "type": "number",
      "description": "The ID of the sprint"
    },
    "maxResults": {
      "type": "number",
      "description": "Maximum number of issues to return (default: 200)"
    },
    "fields": {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "key",
          "summary",
          "status",
          "statusCategory",
          "assignee",
          "priority",
          "type",
          "description",
          "labels",
          "customFields"
        ]
      },
      "description": "Fields to include in the response. Default: [\"key\", \"summary\", \"status\", \"statusCategory\", \"assignee\", \"priority\"]. Use \"customFields\" to include custom fields."
    }
  },
  "required": [
    "sprintId"
  ]
}
jira_get_sprint_issuesGet all issues in a specific sprint. Returns issue keys, summaries, statuses, and assignees by default. Use the fields parameter to customize which fields are returned.
Input schema
{
  "type": "object",
  "properties": {
    "sprintId": {
      "type": "number",
      "description": "The ID of the sprint"
    },
    "maxResults": {
      "type": "number",
      "description": "Maximum number of issues to return (default: 50)"
    },
    "fields": {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "key",
          "summary",
          "status",
          "statusCategory",
          "assignee",
          "priority",
          "type",
          "description",
          "labels",
          "customFields"
        ]
      },
      "description": "Fields to include in the response. Default: [\"key\", \"summary\", \"status\", \"statusCategory\", \"assignee\", \"priority\"]. Use \"customFields\" to include custom fields."
    }
  },
  "required": [
    "sprintId"
  ]
}
jira_get_sprint_reportGenerate a sprint report for retrospectives. Returns issue counts and story points grouped by status categories, bug metrics, and label-specific tracking. Compares current sprint with previous sprint.
Input schema
{
  "type": "object",
  "properties": {
    "sprintId": {
      "type": "number",
      "description": "The current sprint ID"
    },
    "previousSprintId": {
      "type": "number",
      "description": "The previous sprint ID for comparison (optional)"
    },
    "projectKey": {
      "type": "string",
      "description": "Project key (e.g., \"PROJ\")"
    },
    "storyPointsField": {
      "type": "string",
      "description": "Custom field ID for story points (e.g., \"customfield_10024\"). Use jira_get_field_schema to find this."
    },
    "labelsOfInterest": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Labels to track separately (e.g., [\"NZ\", \"TopTen\"]). Returns complete/not complete counts for each."
    },
    "statusGroups": {
      "type": "object",
      "description": "Custom status groupings. Keys are group names, values are arrays of status names. Defaults include: To Do, Blocked, In Progress, Design Review, To Test, Done.",
      "additionalProperties": {
        "type": "array",
        "items": {
          "type": "string"
        }
      }
    },
    "includeTriage": {
      "type": "boolean",
      "description": "Include triage metrics (issues created after sprint started). Default: false."
    },
    "includeInflow": {
      "type": "boolean",
      "description": "Include inflow metrics (issues pulled from backlog after sprint started). Requires changelog lookups. Default: false."
    }
  },
  "required": [
    "sprintId",
    "projectKey",
    "storyPointsField"
  ]
}
jira_get_transitionsGet available status transitions for an issue. Use this to see what statuses an issue can be moved to.
Input schema
{
  "type": "object",
  "properties": {
    "issueKey": {
      "type": "string",
      "description": "The issue key (e.g., PROJ-123)"
    }
  },
  "required": [
    "issueKey"
  ]
}
jira_list_attachmentsList all attachments on a JIRA issue. Returns attachment IDs, filenames, sizes, and types.
Input schema
{
  "type": "object",
  "properties": {
    "issueKey": {
      "type": "string",
      "description": "The issue key (e.g., PROJ-123)"
    }
  },
  "required": [
    "issueKey"
  ]
}
jira_list_boardsList all accessible JIRA boards. Returns board IDs, names, types (scrum/kanban), and project keys.
Input schema
{
  "type": "object",
  "properties": {},
  "required": []
}
jira_list_field_valuesList discrete values for a JIRA field. Supports labels, priorities, statuses, issue types, resolutions, and components. Useful for discovering valid values before creating/updating issues.
Input schema
{
  "type": "object",
  "properties": {
    "field": {
      "type": "string",
      "enum": [
        "labels",
        "priorities",
        "statuses",
        "issueTypes",
        "resolutions",
        "components"
      ],
      "description": "The field to list values for"
    },
    "projectKey": {
      "type": "string",
      "description": "Project key (required for \"components\" field, e.g., \"PROJ\")"
    },
    "searchTerm": {
      "type": "string",
      "description": "Filter values by name (case-insensitive partial match)"
    },
    "maxResults": {
      "type": "number",
      "description": "Maximum number of values to return (default: 1000 for labels)"
    }
  },
  "required": [
    "field"
  ]
}
jira_list_sprintsList sprints for a board or project. Returns sprint IDs, names, states, dates, and goals sorted by most recent first. Supports pagination.
Input schema
{
  "type": "object",
  "properties": {
    "boardId": {
      "type": "number",
      "description": "The ID of a specific JIRA board. Either boardId or projectKey is required."
    },
    "projectKey": {
      "type": "string",
      "description": "Project key to get sprints from all boards in the project (e.g., \"PROJ\"). Either boardId or projectKey is required."
    },
    "state": {
      "type": "string",
      "enum": [
        "active",
        "future",
        "closed"
      ],
      "description": "Filter sprints by state. If not specified, returns all sprints."
    },
    "startAt": {
      "type": "number",
      "description": "Index of the first sprint to return (for pagination). Default: 0."
    },
    "maxResults": {
      "type": "number",
      "description": "Maximum number of sprints to return (default: 50)"
    }
  }
}
jira_search_issuesSearch for issues using JQL (JIRA Query Language). Returns up to 50 issues by default. IMPORTANT: Queries must be bounded with a project filter or other restriction (e.g., assignee, sprint) - unbounded queries are rejected by JIRA. Example: "project = PROJ AND status = \"In Progress\""
Input schema
{
  "type": "object",
  "properties": {
    "jql": {
      "type": "string",
      "description": "JQL query string"
    },
    "maxResults": {
      "type": "number",
      "description": "Maximum number of results to return. Defaults to 50 if not specified."
    },
    "nextPageToken": {
      "type": "string",
      "description": "Token for fetching the next page of results. Use the nextPageToken from a previous response to continue pagination."
    },
    "fields": {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "key",
          "summary",
          "status",
          "statusCategory",
          "assignee",
          "type",
          "parent",
          "priority",
          "description",
          "labels",
          "customFields"
        ]
      },
      "description": "Fields to include in the response. Default: [\"key\", \"summary\", \"status\", \"statusCategory\", \"assignee\", \"type\", \"parent\"]. Use \"customFields\" to include custom fields."
    }
  },
  "required": [
    "jql"
  ]
}
jira_transition_issueTransition an issue to a new status. Use jira_get_transitions first to get valid transition IDs.
Input schema
{
  "type": "object",
  "properties": {
    "issueKey": {
      "type": "string",
      "description": "The issue key (e.g., PROJ-123)"
    },
    "transitionId": {
      "type": "string",
      "description": "The transition ID (from jira_get_transitions)"
    },
    "comment": {
      "type": "string",
      "description": "Optional comment to add with the transition"
    }
  },
  "required": [
    "issueKey",
    "transitionId"
  ]
}
jira_update_issueUpdate fields on a JIRA issue. Can update summary, description, assignee, priority, labels, and custom fields.
Input schema
{
  "type": "object",
  "properties": {
    "issueKey": {
      "type": "string",
      "description": "The issue key (e.g., PROJ-123)"
    },
    "summary": {
      "type": "string",
      "description": "New summary/title for the issue"
    },
    "description": {
      "type": "string",
      "description": "New description for the issue"
    },
    "assignee": {
      "type": "string",
      "description": "Atlassian account ID of the assignee (use null to unassign)"
    },
    "priority": {
      "type": "string",
      "description": "Priority name (e.g., \"High\", \"Medium\", \"Low\")"
    },
    "labels": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Array of labels to set on the issue"
    },
    "customFields": {
      "type": "object",
      "description": "Custom fields to update. Keys are field IDs (e.g., \"customfield_10001\") and values depend on field type.",
      "additionalProperties": true
    }
  },
  "required": [
    "issueKey"
  ]
}
jira_upload_attachmentUpload a file as an attachment to a JIRA issue.
Input schema
{
  "type": "object",
  "properties": {
    "issueKey": {
      "type": "string",
      "description": "The issue key (e.g., PROJ-123)"
    },
    "filePath": {
      "type": "string",
      "description": "Local file path to upload"
    }
  },
  "required": [
    "issueKey",
    "filePath"
  ]
}

Resources 0

  • None observed.

Resource templates 0

  • None observed.

Prompts 0

  • None observed.

Remote endpoints

EndpointTransportAuthenticationHealthObserved
No verified remote endpoint is linked.

JIRA MCP Server questions

How do I install JIRA MCP Server?

Install the selected package version with: npm install --save-exact @suppleaardvark/jira-mcp-server@1.0.13

What tools does JIRA MCP Server provide?

JIRA MCP Server exposed 21 tools during independent protocol observation, including jira_add_comment, jira_create_issue, jira_download_attachment, jira_get_active_sprint, jira_get_backlog_stats, jira_get_field_schema, jira_get_issue, jira_get_issue_comments, and others.

Is JIRA MCP Server secure?

The selected current version does not yet have completed public verification. Unknown does not mean clean or vulnerable.

Company and product intelligence

These internal links are derived from strong identity fields such as the implementation name, package, repository, vendor, and listing name—not generic description prose.

Associated company landscape

Atlassian intelligence →

Association is based on retained identity fields; it does not by itself prove first-party publication.

Explore related MCP server guides

Curated product and capability guides containing this catalog record.

Official vs Community MCP Servers

Let’s talk about MCP security.

Share your details and our security team will contact you.