Skip to main content
Glama
its-qusai-nasr

Jira Admin MCP Server

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
JIRA_EMAILYesThe Atlassian account email that owns the API token
JIRA_DRY_RUNNotrue simulates all writes (POST/PUT/DELETE) and returns the payload that would be sent, without calling Jira. Defaults to false.false
JIRA_BASE_URLYesYour Jira Cloud base URL, e.g. https://your-company.atlassian.net
JIRA_API_TOKENYesAPI token from https://id.atlassian.com/manage-profile/security/api-tokens

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}
logging
{}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
extensions
{
  "io.modelcontextprotocol/ui": {}
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
jira_issues_searchA

Search Jira issues using JQL.

Use this to find issues matching criteria. Prefer targeted JQL over broad searches. Not this when you know the exact issue key: use jira_issues_get instead. Returns: {total, issues: [{key, summary, status, assignee, ...}], next_page_token}

jira_issues_getA

Get a single Jira issue by key.

Use this when you know the exact issue key. Not this for searching: use jira_issues_search with JQL instead. Returns: {key, summary, status, issue_type, assignee, reporter, priority, project, ...}

jira_issues_createA

Create a new Jira issue.

Use jira_issues_get_createmeta first to check required fields for the project/issue type. Custom fields must use their field ID (customfield_XXXXX). Returns: {key, id} of the created issue.

jira_issues_updateA

Update fields on an existing Jira issue.

For select/dropdown: {'value': 'Option'}. For users: {'accountId': '...'}. Use jira_issues_get first to check current values. Returns: {success, issue_key}

jira_issues_transitionA

Transition a Jira issue to a new status.

Automatically resolves the transition ID from the target status name. Use jira_issues_get_transitions to see available transitions first. Returns: {success, issue_key, from_status, to_status}

jira_issues_assignA

Assign a Jira issue to a user, or unassign it.

Use jira_users_search first to look up the account ID. Returns: {success, issue_key, assignee_account_id}

jira_issues_get_transitionsA

Get available workflow transitions for an issue.

Use this before jira_issues_transition to see valid target statuses. Returns: {issue_key, transitions: [{id, name, to_status}]}

jira_issues_get_createmetaA

Get metadata for creating issues in a project.

Without issue_type_id: returns available issue types. With issue_type_id: returns required and optional fields for that type. Use this before jira_issues_create to understand required fields. Returns: {project_key, issue_types: [...]} or {project_key, issue_type, required_fields: [...], optional_fields: [...]}

jira_issues_deleteA

Delete a Jira issue permanently.

This is irreversible. Use with caution: confirm with an admin before deleting. Set delete_subtasks=True to also delete all subtasks. Returns: {success, issue_key}

jira_issues_linkA

Create a link between two Jira issues.

Example: link_issues('PROJ-1', 'PROJ-2', 'Blocks') means PROJ-2 blocks PROJ-1. Use jira_issue_link_types_list to see available link types with inward/outward labels. Returns: {success, inward_issue, outward_issue, link_type}

jira_issues_get_changelogA

Get the changelog (audit history) of an issue.

Shows who changed what fields and when. Useful for auditing. Returns: {issue_key, total, changes: [{created, author, items: [{field, from, to}]}]}

jira_issues_bulk_createA

Create multiple Jira issues in one call (up to 50).

Each issue in the list needs at minimum: project_key, issue_type, summary. Optional: description, assignee_account_id, priority, labels, custom_fields. Returns: {created: [{key, id}], errors: [...]}

jira_comments_listA

List comments on a Jira issue.

Returns comments with author, body, and timestamps. Sorted newest-first by default. Returns: {issue_key, total, comments: [{id, author, body, created, updated}]}

jira_comments_addA

Add a comment to a Jira issue.

Accepts plain text (auto-converted) or raw ADF JSON. Returns: {id, issue_key, author, created}

jira_users_searchA

Search for Jira users by email or display name.

Always use this to look up a user's account_id before adding them to groups or assigning issues. Not this when you already have the account_id: use jira_users_get instead. Returns: {total, users: [{account_id, display_name, email, active}]}

jira_users_getA

Get details for a specific Jira user by account ID.

Use jira_users_search to find the account_id first. Returns: {account_id, display_name, email, active, groups}

jira_groups_listA

List Jira groups, optionally filtered by name.

Common groups: jira-administrators, jira-developers, jira-project-leads. Returns: {total, groups: [{name, group_id, member_count}]}

jira_groups_get_membersA

Get members of a Jira group.

Returns: {group_name, total, members: [{account_id, display_name, email, active}]}

jira_groups_add_userA

Add a user to a Jira group.

Always verify user identity first with jira_users_search. Returns: {success, group_name, account_id}

jira_groups_remove_userA

Remove a user from a Jira group.

Verify user identity first. Removing from permission-granting groups may lock the user out. Returns: {success, group_name, account_id}

jira_groups_createA

Create a new Jira group.

Group names should follow convention: lowercase with hyphens. Returns: {name, group_id}

jira_groups_deleteA

Delete a Jira group permanently.

This removes the group and all its membership associations. Users are NOT deleted: only the group itself. Returns: {success, group_name}

jira_projects_listA

List Jira projects, optionally filtered by name or key.

Returns: {total, projects: [{id, key, name, project_type, lead}]}

jira_projects_getA

Get full project details including lead, issue types, and description.

Returns: {id, key, name, project_type, lead, description, issue_types, category}

jira_projects_get_statusesA

Get all statuses available in a project, grouped by issue type.

Returns: {project_key, issue_types: [{name, statuses: [{id, name, category}]}]}

jira_projects_get_rolesA

Get project roles and their actors (users/groups).

Returns: {project_key, roles: [{name, id, actors: [{display_name, type, name}]}]}

jira_projects_update_roleA

Add or remove an actor (user or group) from a project role.

Use jira_projects_get_roles first to find the role_id. Returns: {success, project_key, role_id, action, actor_value}

jira_projects_get_versionsA

Get versions (releases) for a project.

Returns: {project_key, total, versions: [{id, name, description, released, release_date, archived}]}

jira_projects_create_versionA

Create a new version (release) in a project.

Returns: {id, name, project_key}

jira_projects_get_featuresA

Get features and their states for a project.

Shows which project features are enabled/disabled (e.g. backlog, board, calendar, security). Returns: {project_key, features: [{feature, state, toggle_locked}]}

jira_projects_get_notification_schemeA

Get the notification scheme assigned to a project.

Returns: {project_key, scheme_id, scheme_name, description}

jira_projects_get_categoriesA

List all project categories.

Categories group projects for organization (e.g. 'Engineering', 'Marketing'). Returns: {total, categories: [{id, name, description}]}

jira_permissions_list_schemesA

List all permission schemes in the Jira instance.

Use jira_permissions_get_scheme to see grants in a specific scheme. Returns: {total, schemes: [{id, name, description}]}

jira_permissions_get_schemeA

Get a permission scheme with all its permission grants.

Common permission keys: BROWSE_PROJECTS, EDIT_ISSUES, CREATE_ISSUES, ASSIGN_ISSUES, TRANSITION_ISSUES, ADD_COMMENTS, ADMINISTER_PROJECTS, DELETE_ISSUES. Returns: {id, name, description, permissions: [{permission, holder_type, holder_value}]}

jira_permissions_add_grantA

Add a permission grant to a permission scheme.

Verify the scheme is not shared with other projects before modifying. Returns: {success, scheme_id, permission, holder_type}

jira_permissions_assign_schemeA

Assign a permission scheme to a project. Replaces the current scheme.

Verify the new scheme has all required permissions before assigning. Returns: {success, project_key, scheme_id}

jira_fields_searchA

Search for Jira fields (custom and system).

Use this to find field IDs (customfield_XXXXX) for custom fields by name before referencing them in other tools. Returns: {total, fields: [{id, name, custom, schema_type}]}

jira_fields_get_contextsA

Get contexts for a custom field.

Contexts determine which projects/issue types the field appears in. Returns: {field_id, contexts: [{id, name, description, is_global_context, is_any_issue_type}]}

jira_fields_get_optionsA

Get options for a custom field in a specific context.

For select/dropdown fields, returns the available option values. Returns: {field_id, context_id, options: [{id, value, disabled}]}

jira_fields_manage_optionsA

Add, update, or reorder options for a custom field.

Use jira_fields_get_options first to see existing options and their IDs. Returns: {success, field_id, context_id, action}

jira_fields_create_contextA

Create a new context for a custom field, optionally scoped on creation.

A context determines which projects/issue types a field appears in, and owns its own set of options. projectIds/issueTypeIds are applied in the same create call. Returns: {success, field_id, context: {id, name, project_ids, issue_type_ids}}

jira_fields_update_contextA

Rename or re-describe a custom field context.

Returns: {success, field_id, context_id}

jira_fields_delete_contextA

Delete a custom field context permanently.

Deletes the context and all of its options. Confirm first. Returns: {success, field_id, context_id}

jira_fields_assign_context_projectsA

Scope a custom field context to specific projects.

Note: assigning projects converts a global context into a project-scoped one. Returns: {success, field_id, context_id, project_ids}

jira_fields_remove_context_projectsA

Remove projects from a custom field context's scope.

Returns: {success, field_id, context_id, removed_project_ids}

jira_fields_add_context_issuetypesB

Restrict a custom field context to specific issue types.

Returns: {success, field_id, context_id, issue_type_ids}

jira_fields_remove_context_issuetypesA

Remove issue types from a custom field context.

Returns: {success, field_id, context_id, removed_issue_type_ids}

jira_fields_get_project_mappingA

Show which projects each context of a custom field is scoped to.

Use this to audit field scope, e.g. confirm a custom field's context is correctly scoped to the intended projects. Returns: {field_id, mappings: [{context_id, project_id, is_global_context}]}

jira_workflows_searchA

Search for workflows in the Jira instance.

Returns: {total, workflows: [{id, name, description, statuses}]}

jira_workflows_get_schemesA

List workflow schemes.

Returns: {total, schemes: [{id, name, description, default_workflow}]}

jira_workflows_get_scheme_mappingsA

Get issue type to workflow mappings in a workflow scheme.

Shows which workflow is used for each issue type. Returns: {scheme_id, default_workflow, mappings: [{issue_type, workflow}]}

jira_workflows_get_scheme_project_usagesA

List the projects that use a given workflow scheme.

SAFETY: run this before editing a scheme. If more than one project uses it, edits affect all of them: create a dedicated scheme or work on a draft instead. Returns: {scheme_id, project_count, project_ids, shared}

jira_workflows_set_scheme_issuetypeA

Map an issue type to a workflow within a workflow scheme.

For in-use (shared) schemes the live edit auto-creates a draft that must then be published with jira_workflows_publish_scheme_draft. Returns: {success, scheme_id, issue_type_id, workflow, edited_draft}

jira_workflows_delete_scheme_issuetypeA

Remove an issue type's workflow mapping from a workflow scheme.

The issue type falls back to the scheme's default workflow. Returns: {success, scheme_id, issue_type_id, edited_draft}

jira_workflows_create_scheme_draftA

Create a draft of a workflow scheme so it can be edited safely.

Use a draft when a scheme is in active use; edit the draft, then publish it with jira_workflows_publish_scheme_draft. Returns: {success, scheme_id, draft: {id, name}}

jira_workflows_publish_scheme_draftA

Publish a workflow scheme draft, making its changes live.

If the draft removes statuses that issues currently sit on, Jira requires status_mappings to relocate those issues. Returns: {success, scheme_id, validated_only} or validation result

jira_issuetypes_listA

List issue types, optionally filtered by project.

Returns: {total, issue_types: [{id, name, description, subtask, hierarchy_level}]}

jira_issuetypes_get_schemesA

List issue type schemes.

Returns: {total, schemes: [{id, name, description, default_issue_type_id}]}

jira_issuetypes_get_scheme_mappingsA

Get issue types in an issue type scheme.

Returns: {scheme_id, mappings: [{issue_type_id}]}

jira_screens_listA

List Jira screens, optionally filtered by name.

Returns: {total, screens: [{id, name, description}]}

jira_screens_get_fieldsA

Get fields on a screen, optionally for a specific tab.

Returns: {screen_id, tabs: [{id, name, fields: [{id, name}]}]}

jira_screens_get_schemesA

List screen schemes.

Returns: {total, schemes: [{id, name, description}]}

jira_bulk_edit_issuesA

Bulk edit fields on multiple Jira issues.

All issues get the same field values set. For batch operations like bulk-setting labels, priorities, or custom fields. Returns: {success, updated_count} or dry_run info.

jira_bulk_transition_issuesA

Bulk transition multiple issues to a new status.

All issues must have an available transition to the target status. Automatically resolves transition IDs. Returns: {success, transitioned_count, target_status}

jira_filters_searchA

Search for saved JQL filters.

Returns: {total, filters: [{id, name, jql, owner, favourite_count}]}

jira_filters_createA

Create a new saved JQL filter.

The filter is owned by the authenticated user. Share permissions can be managed separately via the Jira UI. Returns: {id, name, jql}

jira_filters_getA

Get a single saved JQL filter by ID.

Returns: {id, name, jql, description, owner, owner_account_id, favourite_count, share_permissions}

jira_filters_updateA

Update an existing saved JQL filter's name, JQL, or description.

Jira requires name + jql on every update, so unspecified fields are pre-fetched and re-sent unchanged. Returns: {success, id, name, jql}

jira_filters_deleteA

Delete a saved JQL filter permanently.

Boards and dashboards backed by this filter will break. Confirm first. Returns: {success, filter_id}

jira_filters_change_ownerB

Change the owner of a saved JQL filter.

Returns: {success, filter_id, new_owner_account_id}

jira_filters_get_sharesA

List the share permissions of a saved JQL filter.

Returns: {filter_id, total, shares: [{id, type, group, project, role}]}

jira_filters_add_shareA

Add a share permission to a saved JQL filter.

Requires that you OWN the filter. To share a filter you do not own, use jira_filters_force_add_share instead. Returns: {success, filter_id, share}

jira_filters_remove_shareA

Remove a share permission from a saved JQL filter.

Returns: {success, filter_id, permission_id}

jira_filters_force_add_shareA

Add a share to a filter you do NOT own, via the admin owner-swap workaround.

overrideSharePermissions only works on READs (JRACLOUD-60899), so to WRITE a share onto another user's filter this does:

  1. take ownership of the filter,

  2. add the share,

  3. restore the original owner. Ownership is always restored, even on failure (best-effort rollback). Returns: {success, filter_id, share, owner_restored, original_owner_account_id}

jira_issue_link_types_listA

List all available issue link types.

Shows link types like Blocks, Cloners, Duplicate, Relates, etc. Each type has an inward and outward label. Use the 'name' field with jira_issues_link to create links. Returns: {total, link_types: [{id, name, inward, outward}]}

jira_statuses_searchA

Search for statuses across the Jira instance.

Returns statuses with their category (TO_DO, IN_PROGRESS, DONE). Use jira_projects_get_statuses for statuses grouped by issue type in a project. Returns: {total, statuses: [{id, name, category, project_key}]}

jira_tasks_get_statusA

Poll the status of a long-running async Jira task.

Returns: {task_id, kind, status, progress_percent, result, message, submitted, started, finished, elapsed_ms}

jira_tasks_cancelA

Request cancellation of a running generic async task.

Only applies to /task/{id} tasks that are cancellable; bulk-queue tasks cannot be cancelled this way. Returns: {success, task_id, note}

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

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/its-qusai-nasr/jira-admin-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server