jira-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| JIRA_EMAIL | No | Your Atlassian account email (required for Jira Cloud). | |
| JIRA_BASE_URL | No | The base URL of your Jira instance, e.g. https://your-org.atlassian.net (Cloud) or https://jira.yourcompany.com (Data Center). A DC context path such as /jira is preserved. | |
| JIRA_PASSWORD | No | App password for Jira Data Center (alternative to JIRA_API_TOKEN). | |
| JIRA_USERNAME | No | Username for Jira Data Center (alternative to JIRA_EMAIL). | |
| JIRA_API_TOKEN | No | API token (Cloud: from id.atlassian.com; Data Center: personal access token). | |
| JIRA_TIMEOUT_MS | No | Request timeout in milliseconds. Default: 30000. | 30000 |
| JIRA_API_VERSION | No | Force API version '2' or '3'. Default: auto (Cloud → 3, DC → 2). | auto |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_boardsA | List Jira agile boards (scrum or kanban), optionally filtered by type, name, or one project key/ID. |
| get_boardA | Get a single Jira board by ID, including its projects, location, and settings. |
| list_sprintsA | List sprints on a board, optionally filtered by state (active, closed, future). |
| get_sprintA | Get a single sprint by ID (name, state, start/end dates, goal). |
| create_sprintB | Create a new sprint on a board. Dates are ISO-8601 strings, e.g. 2026-09-01T09:00:00.000+0000. |
| update_sprintA | Update a sprint's name, goal, dates, or state (active/closed/future). Only provided fields are changed. |
| close_sprintA | Close a sprint (sets its state to closed). |
| get_sprint_issuesA | List the issues in a sprint. Cloud uses the current Software API enhanced endpoint with cursor paging; Data Center uses Agile 1.0 with startAt/total. |
| get_sprint_viewA | Full sprint view like the Jira UI: board details, the sprint, and its issues, in one call. Cloud issue results use Software API cursor paging; Data Center uses Agile 1.0 offset paging. |
| get_backlogA | List a board's backlog issues (in the board's filter, not in a sprint), ordered by rank. On Cloud this uses the current Software API enhanced backlog endpoint and cursor paging; on Data Center it uses Agile 1.0 with startAt/total. |
| list_epicsA | List the epics on a board, including whether each one is done. |
| get_epicA | Get a single epic by key (e.g. PROJ-1) or numeric issue ID. Falls back to the issue API for team-managed projects, where epics are ordinary issues. |
| get_epic_issuesA | List the issues belonging to an epic. Cloud uses the current Software API enhanced endpoint; Data Center uses Agile 1.0. Falls back to a JQL 'parent = ' search on team-managed projects, where the epic API does not apply. |
| create_epicA | Create an epic in a project. Company-managed projects usually also require the 'Epic Name' custom field — call get_epic_meta or get_issue_create_meta first and pass it via customFields. |
| move_issue_to_epicA | Add issues to an epic. On team-managed projects this sets the issue's parent instead. To remove an issue from an epic, use update_issue with fields { "parent": null } (team-managed) or { "epic": null } (company-managed). |
| get_epic_metaA | List the epic-level issue types available in a project (hierarchy level above Story/Task). Use get_issue_create_meta for the fields required to create one. |
| get_issueC | Get a single Jira issue by key (e.g. PROJ-123). |
| create_issueA | Create a new issue. Use get_issue_create_meta to discover valid projects, issue types, and required fields. Extra custom fields can be passed via customFields (e.g. { 'customfield_10010': 'value' }). |
| update_issueA | Update an issue. Pass absolute values in fields (e.g. { summary: 'new' }) and/or relative changes in update (e.g. { labels: [{ add: 'x' }, { remove: 'y' }] }). |
| delete_issueA | Delete an issue. This is destructive. |
| search_issuesA | Search issues with JQL, e.g. 'project = PROJ AND sprint = 42 ORDER BY rank' or 'project = PROJ AND sprint IS NONE'. On Jira Cloud this uses enhanced search (/search/jql): the JQL must be bounded (include a restriction such as project, assignee, or key — a bare 'ORDER BY created DESC' is rejected), the response has no total, and paging is by cursor — pass the returned nextPageToken back in for the next page and stop when isLast is true. On Jira Data Center this uses the legacy /search endpoint, which pages with startAt and returns total. |
| get_issue_create_metaA | Discover valid projects, issue types, and their fields (with required flags) before creating an issue. Uses the current per-project metadata endpoints instead of the deprecated /issue/createmeta query form. Pass projectKeys when fields are expanded (the default) to bound requests; omit it only with expand=projects.issuetypes for issue-type summaries. |
| get_issue_transitionsA | List the workflow transitions available for an issue. |
| transition_issueA | Move an issue through its workflow. Use get_issue_transitions first to find the transition ID and required fields. |
| assign_issueA | Assign (or unassign, with an empty value) an issue to a user. Uses PUT /issue/{key}/assignee with accountId on v3 and name on v2. |
| add_commentC | Add a comment to an issue. |
| list_commentsB | List comments on an issue. |
| delete_commentA | Delete a comment by its ID (from list_comments). |
| get_issue_worklogsB | List time-tracking worklogs on an issue. |
| add_worklogA | Add a worklog (time spent) to an issue. started is optional and defaults to now when omitted; timeSpent uses Jira format, e.g. '2h 30m' or '1d'. |
| list_projectsA | List all Jira projects visible to the current user. Cloud uses paginated /project/search; Data Center uses /project. |
| get_projectA | Get a single project by key or ID. |
| get_project_componentsB | List components of a project. |
| create_project_componentC | Create a component in a project. |
| get_project_issue_typesB | List the issue types available in a project, with their hierarchy levels (epic = 1, story/task = 0, sub-task = -1). |
| get_project_rolesB | List roles (and their actors) of a project. |
| get_project_versionsB | List versions (releases) of a project. |
| get_current_userA | Get the profile of the user whose credentials are configured (also verifies auth works). |
| find_usersA | Search for users by name/email (Cloud) or username (Data Center). Returns account IDs / usernames usable for assignment. |
| get_userA | Get a user by account ID (Jira Cloud / API v3) or username (Data Center / API v2). |
| get_fieldsA | List all issue fields (including custom field IDs) in the Jira instance. |
| get_issue_typesA | List all issue types (Story, Task, Bug, Epic, ...) in the Jira instance. |
| jira_apiA | Call any Jira REST API endpoint not covered by a dedicated tool. Path must start with /rest/ and stay under it (e.g. '/rest/api/3/issue/PROJ-1/names' or '/rest/agile/1.0/board/1'). Query params go in query, JSON payload in body. Returns the raw JSON response. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/thammarongg/jira-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server