Command Palette

Search for a command to run...

UnylyUnyly
Весь каталог

Jiradatacenter

БесплатноНе проверен

MCP server for Jira Data Center / Server (self-hosted Jira, REST API v2) that exposes core work-item project-management operations (platform + Agile) as MCP too

GitHubEmbed

Описание

MCP server for Jira Data Center / Server (self-hosted Jira, REST API v2) that exposes core work-item project-management operations (platform + Agile) as MCP tools.

README

MCP server for Jira Data Center / Server (self-hosted Jira, REST API v2) — exposes core work-item project-management operations (platform + Agile) as MCP tools.

Overview

  • Stateless HTTP service. No credentials are ever persisted — each request supplies its own site URL and Basic Auth credentials via headers, used only for the lifetime of that single request.
  • Supports concurrent requests; per-request credential isolation is done via Python contextvars, not a global/shared client instance.
  • Entry points: POST /mcp (MCP protocol) and GET /health (health check).
  • Default port: 8080 (configurable via MCP_HTTP_PORT).

Scope

214 tools across 34 categories, covering the platform REST API (/rest/api/2/...) plus the Agile REST API (/rest/agile/1.0/..., board/sprint/epic).

MSPbots' own stored integration config for this vendor is a pre-generic-framework (legacy) integration — all 17 of its configured endpoints return an entirely empty apiConfig (method: None, url: None, params: [], headers: [], migrationStatus: "0"), because the real endpoint logic lives in backend Java code, not the generic config API. So MSPbots' 17 endpoint names were used only as a guide to which resource categories matter (issue, project, comment, worklog, board, sprint, etc.); actual paths/params/methods were sourced entirely from Atlassian's own official documentation:

  • Platform API (180 ops kept): parsed from Atlassian's official machine-readable WADL spec for Jira 9.4.0 (https://docs.atlassian.com/software/jira/docs/api/REST/9.4.0/jira-rest-plugin.wadl, 387 total operations), filtered down to core work-item/project-management categories per explicit user scope decision — full coverage for issue, version, filter, component, comment, worklog, issueLink(Type), priority, resolution, status(category), search/jql, field(s), myself, mypreferences, mypermissions/permissions, securitylevel, groups, groupuserpicker, projectCategory, projectvalidate, customField(Option)s, serverInfo; partial coverage (a curated operation allowlist) for issuetype, project, user, role, group, dashboard — excluding admin/scheme/system-level operations (workflow scheme, permission scheme, avatar, reindex, plugin management, etc.) as out of scope.
  • Agile API (34 ops): manually curated from Atlassian's HTML docs at https://docs.atlassian.com/jira-software/REST/9.4.0/ — no WADL is published for this API. Query parameter names for list endpoints follow the documented pagination convention (startAt/maxResults) plus the well-documented issue-search filters (jql/validateQuery/fields/ expand) used consistently across board/epic/sprint "issues for X" endpoints.

Authentication

Jira Data Center/Server uses HTTP Basic Authentication (Authorization: Basic base64(username:password)) — confirmed against the credentials MSPbots stores for this integration (its token field is literally base64(username:password), not a separate secret). This server builds that header itself from the raw username/password on every request; the site's base URL is also per-tenant (each MSPbots tenant may point at a different Jira instance), so it is supplied as a header too, not a fixed environment variable.

HEADER 授权参数说明

Header 类型 是否必填 默认值 枚举值 字段描述 Example
X-Jira-Site string Jira 实例地址(域名或完整 URL,缺省协议时自动补全为 https://) jira.example.com
X-Jira-Username string Basic Auth 用户名 api_user
X-Jira-Password string Basic Auth 密码 Sample_Passw0rd!

Missing any header returns 401:

{
  "error": "Missing credentials",
  "message": "This server requires the X-Jira-Site, X-Jira-Username and X-Jira-Password headers",
  "required_headers": ["X-Jira-Site", "X-Jira-Username", "X-Jira-Password"],
  "optional_headers": []
}

Environment Variables

Variable 类型 是否必填 默认值 说明
MCP_HTTP_PORT int 8080 HTTP 监听端口
MCP_HTTP_HOST string 0.0.0.0 HTTP 监听地址

MCP Endpoint

  • POST /mcp — MCP protocol (streamable HTTP transport)
  • GET /health — health check, returns {"status": "ok", "service": "jiradatacenter-mcp", "transport": "http"}

Tool List

Tool names are jira_<category>_<operationId>, derived from the WADL <method id="..."> / manually-curated Agile operation_id. body parameters are accepted as a generic dict — see the Jira Server REST API reference (linked below) for each resource's exact JSON schema.

Category Tool 功能 方法+路径 参数
agile jira_agile_create_board Create board. POST /rest/agile/1.0/board body(必填)
agile jira_agile_create_sprint Create sprint. POST /rest/agile/1.0/sprint body(必填)
agile jira_agile_delete_board Delete board. DELETE /rest/agile/1.0/board/{boardId} board_id(必填)
agile jira_agile_delete_sprint Delete sprint. DELETE /rest/agile/1.0/sprint/{sprintId} sprint_id(必填)
agile jira_agile_estimate_issue_for_board Estimate issue for board. PUT /rest/agile/1.0/issue/{issueIdOrKey}/estimation issue_id_or_key(必填), board_id(必填), body(必填)
agile jira_agile_get_all_boards Get all boards. GET /rest/agile/1.0/board start_at(可选), max_results(可选), type(可选), name(可选), project_key_or_id(可选)
agile jira_agile_get_all_sprints_for_board Get all sprints for a board. GET /rest/agile/1.0/board/{boardId}/sprint board_id(必填), start_at(可选), max_results(可选), state(可选)
agile jira_agile_get_all_versions_for_board Get all versions for a board. GET /rest/agile/1.0/board/{boardId}/version board_id(必填), start_at(可选), max_results(可选), released(可选)
agile jira_agile_get_board Get board. GET /rest/agile/1.0/board/{boardId} board_id(必填)
agile jira_agile_get_configuration Get board configuration. GET /rest/agile/1.0/board/{boardId}/configuration board_id(必填)
agile jira_agile_get_epic Get epic. GET /rest/agile/1.0/epic/{epicIdOrKey} epic_id_or_key(必填)
agile jira_agile_get_epics Get epics. GET /rest/agile/1.0/board/{boardId}/epic board_id(必填), start_at(可选), max_results(可选), done(可选)
agile jira_agile_get_issue_agile Get issue (Agile view). GET /rest/agile/1.0/issue/{issueIdOrKey} issue_id_or_key(必填)
agile jira_agile_get_issue_estimation_for_board Get issue estimation for board. GET /rest/agile/1.0/issue/{issueIdOrKey}/estimation issue_id_or_key(必填), board_id(必填)
agile jira_agile_get_issues_for_backlog Get issues for backlog. GET /rest/agile/1.0/board/{boardId}/backlog board_id(必填), start_at(可选), max_results(可选), jql(可选), validate_query(可选), fields(可选), expand(可选)
agile jira_agile_get_issues_for_board Get issues for board. GET /rest/agile/1.0/board/{boardId}/issue board_id(必填), start_at(可选), max_results(可选), jql(可选), validate_query(可选), fields(可选), expand(可选)
agile jira_agile_get_issues_for_board_epic Get issues for epic (within a board). GET /rest/agile/1.0/board/{boardId}/epic/{epicId}/issue board_id(必填), epic_id(必填), start_at(可选), max_results(可选), jql(可选), validate_query(可选), fields(可选), expand(可选)
agile jira_agile_get_issues_for_epic Get issues for epic. GET /rest/agile/1.0/epic/{epicIdOrKey}/issue epic_id_or_key(必填), start_at(可选), max_results(可选), jql(可选), validate_query(可选), fields(可选), expand(可选)
agile jira_agile_get_issues_for_sprint Get issues for sprint. GET /rest/agile/1.0/sprint/{sprintId}/issue sprint_id(必填), start_at(可选), max_results(可选), jql(可选), validate_query(可选), fields(可选), expand(可选)
agile jira_agile_get_issues_for_sprint_on_board Get issues for a sprint (within a board). GET /rest/agile/1.0/board/{boardId}/sprint/{sprintId}/issue board_id(必填), sprint_id(必填), start_at(可选), max_results(可选), jql(可选), validate_query(可选), fields(可选), expand(可选)
agile jira_agile_get_issues_without_epic Get issues without epic. GET /rest/agile/1.0/epic/none/issue start_at(可选), max_results(可选), jql(可选), validate_query(可选), fields(可选), expand(可选)
agile jira_agile_get_issues_without_epic_for_board Get issues without epic (within a board). GET /rest/agile/1.0/board/{boardId}/epic/none/issue board_id(必填), start_at(可选), max_results(可选), jql(可选), validate_query(可选), fields(可选), expand(可选)
agile jira_agile_get_projects_for_board Get projects associated with a board. GET /rest/agile/1.0/board/{boardId}/project board_id(必填), start_at(可选), max_results(可选)
agile jira_agile_get_sprint Get sprint. GET /rest/agile/1.0/sprint/{sprintId} sprint_id(必填)
agile jira_agile_move_issues_to_backlog Move issues to backlog. POST /rest/agile/1.0/backlog/issue body(必填)
agile jira_agile_move_issues_to_epic Move issues to epic. POST /rest/agile/1.0/epic/{epicIdOrKey}/issue epic_id_or_key(必填), body(必填)
agile jira_agile_move_issues_to_sprint Move issues to sprint. POST /rest/agile/1.0/sprint/{sprintId}/issue sprint_id(必填), body(必填)
agile jira_agile_partially_update_epic Partially update epic (Agile-specific fields only — use the platform issue API for other fields). POST /rest/agile/1.0/epic/{epicIdOrKey} epic_id_or_key(必填), body(必填)
agile jira_agile_partially_update_sprint Partially update sprint. POST /rest/agile/1.0/sprint/{sprintId} sprint_id(必填), body(必填)
agile jira_agile_rank_epics Rank epics. PUT /rest/agile/1.0/epic/{epicIdOrKey}/rank epic_id_or_key(必填), body(必填)
agile jira_agile_rank_issues Rank issues. PUT /rest/agile/1.0/issue/rank body(必填)
agile jira_agile_remove_issues_from_epic Remove issues from epic. POST /rest/agile/1.0/epic/none/issue body(必填)
agile jira_agile_swap_sprint Swap sprint. POST /rest/agile/1.0/sprint/{sprintId}/swap sprint_id(必填), body(必填)
agile jira_agile_update_sprint Update sprint (full). PUT /rest/agile/1.0/sprint/{sprintId} sprint_id(必填), body(必填)
attachment jira_attachment_expand_for_humans Tries to expand an attachment. Output is human-readable and subject to change. GET /rest/api/2/attachment/{id}/expand/human id(必填)
attachment jira_attachment_expand_for_machines Tries to expand an attachment. Output is raw and should be backwards-compatible through the course of time. GET /rest/api/2/attachment/{id}/expand/raw id(必填)
attachment jira_attachment_get_attachment Returns the meta-data for an attachment, including the URI of the actual attached file. GET /rest/api/2/attachment/{id} id(必填)
attachment jira_attachment_get_attachment_meta Returns the meta information for an attachments, specifically if they are enabled and the maximum upload size. GET /rest/api/2/attachment/meta
attachment jira_attachment_remove_attachment Remove an attachment from an issue. DELETE /rest/api/2/attachment/{id} id(必填)
comment jira_comment_delete_property Removes the property from the comment identified by the key or by the id. Ths user removing the property is required. DELETE /rest/api/2/comment/{commentId}/properties/{propertyKey} comment_id(必填), property_key(必填)
comment jira_comment_get_properties_keys Returns the keys of all properties for the comment identified by the key or by the id. GET /rest/api/2/comment/{commentId}/properties comment_id(必填)
comment jira_comment_get_property Returns the value of the property with a given key from the comment identified by the key or by the id. The user who retrieves. GET /rest/api/2/comment/{commentId}/properties/{propertyKey} comment_id(必填), property_key(必填)
comment jira_comment_set_property Sets the value of the specified comment's property. PUT /rest/api/2/comment/{commentId}/properties/{propertyKey} comment_id(必填), property_key(必填), body(必填)
component jira_component_create_component Create a component via POST. POST /rest/api/2/component body(必填)
component jira_component_delete Delete a project component. DELETE /rest/api/2/component/{id} id(必填), move_issues_to(可选)
component jira_component_get_component Returns a project component. GET /rest/api/2/component/{id} id(必填)
component jira_component_get_component_related_issues Returns counts of issues related to this component. GET /rest/api/2/component/{id}/relatedIssueCounts id(必填)
component jira_component_get_paginated_components Returns paginated list of filtered active components. GET /rest/api/2/component/page start_at(可选), max_results(可选), query(可选), project_ids(可选)
component jira_component_update_component Modify a component via PUT. Any fields present in the PUT will override existing values. As a convenience, if a field. PUT /rest/api/2/component/{id} id(必填), body(必填)
customfieldoption jira_customFieldOption_get_custom_field_option Returns a full representation of the Custom Field Option that has the given id. GET /rest/api/2/customFieldOption/{id} id(必填)
customfields jira_customFields_bulk_delete_custom_fields bulkDeleteCustomFields. DELETE /rest/api/2/customFields ids(可选)
customfields jira_customFields_get_custom_field_options Returns custom field's options defined in a given context composed of projects and issue types. GET /rest/api/2/customFields/{customFieldId}/options custom_field_id(必填), project_ids(可选), issue_type_ids(可选), query(可选), max_results(可选)
customfields jira_customFields_get_custom_fields getCustomFields. GET /rest/api/2/customFields start_at(可选), max_results(可选), search(可选), project_ids(可选), screen_ids(可选), types(可选), sort_order(可选), sort_column(可选), last_value_update(可选)
dashboard jira_dashboard_get_dashboard Returns a single dashboard. GET /rest/api/2/dashboard/{id} id(必填)
dashboard jira_dashboard_list Returns a list of all dashboards, optionally filtering them. GET /rest/api/2/dashboard filter(可选), start_at(可选), max_results(可选)
field jira_field_create_custom_field Creates a custom field using a definition (object encapsulating custom field data). POST /rest/api/2/field body(必填)
field jira_field_get_fields Returns a list of all fields, both System and Custom. GET /rest/api/2/field
filter jira_filter_add_share_permission Adds a share permissions to the given filter. Adding a global permission removes all previous permissions from the filter. POST /rest/api/2/filter/{id}/permission id(必填), body(必填)
filter jira_filter_create_filter Creates a new filter, and returns newly created filter. POST /rest/api/2/filter body(必填), expand(可选)
filter jira_filter_default_columns Returns the default columns for the given filter. Currently logged in user will be used as. GET /rest/api/2/filter/{id}/columns id(必填)
filter jira_filter_delete_filter Delete a filter. DELETE /rest/api/2/filter/{id} id(必填)
filter jira_filter_delete_share_permission Removes a share permissions from the given filter. DELETE /rest/api/2/filter/{id}/permission/{permission-id} id(必填), permission_id(必填)
filter jira_filter_edit_filter Updates an existing filter, and returns its new value. PUT /rest/api/2/filter/{id} id(必填), body(必填), expand(可选)
filter jira_filter_get_default_share_scope Returns the default share scope of the logged-in user. GET /rest/api/2/filter/defaultShareScope
filter jira_filter_get_favourite_filters Returns the favourite filters of the logged-in user. GET /rest/api/2/filter/favourite expand(可选)
filter jira_filter_get_filter Returns a filter given an id. GET /rest/api/2/filter/{id} id(必填), expand(可选)
filter jira_filter_get_share_permission Returns a single share permission of the given filter. GET /rest/api/2/filter/{id}/permission/{permissionId} permission_id(必填), id(必填)
filter jira_filter_get_share_permissions Returns all share permissions of the given filter. GET /rest/api/2/filter/{id}/permission id(必填)
filter jira_filter_reset_columns Resets the columns for the given filter such that the filter no longer has its own column config. DELETE /rest/api/2/filter/{id}/columns id(必填)
filter jira_filter_set_columns Sets the default columns for the given filter. PUT /rest/api/2/filter/{id}/columns id(必填), body(必填)
filter jira_filter_set_default_share_scope Sets the default share scope of the logged-in user. PUT /rest/api/2/filter/defaultShareScope body(必填)
group jira_group_get_group Returns REST representation for the requested group. Allows to get list of active users belonging to the. GET /rest/api/2/group groupname(可选), expand(可选)
group jira_group_get_users_from_group This resource returns a paginated list of users who are members of the specified group and its subgroups. GET /rest/api/2/group/member groupname(可选), include_inactive_users(可选), start_at(可选), max_results(可选)
groups jira_groups_find_groups Returns groups with substrings matching a given query. This is mainly for use with. GET /rest/api/2/groups/picker query(可选), exclude(可选), max_results(可选), user_name(可选)
groupuserpicker jira_groupuserpicker_find_users_and_groups Returns a list of users and groups matching query with highlighting. This resource cannot be accessed. GET /rest/api/2/groupuserpicker query(可选), max_results(可选), show_avatar(可选), field_id(可选), project_id(可选), issue_type_id(可选)
issue jira_issue_add_attachment Add one or more attachments to an issue. POST /rest/api/2/issue/{issueIdOrKey}/attachments issue_id_or_key(必填), body(必填)
issue jira_issue_add_comment Adds a new comment to an issue. POST /rest/api/2/issue/{issueIdOrKey}/comment issue_id_or_key(必填), body(必填), expand(可选)
issue jira_issue_add_vote Cast your vote in favour of an issue. POST /rest/api/2/issue/{issueIdOrKey}/votes issue_id_or_key(必填), body(必填)
issue jira_issue_add_watcher Adds a user to an issue's watcher list. POST /rest/api/2/issue/{issueIdOrKey}/watchers issue_id_or_key(必填), body(必填)
issue jira_issue_add_worklog Adds a new worklog entry to an issue. POST /rest/api/2/issue/{issueIdOrKey}/worklog issue_id_or_key(必填), body(必填), adjust_estimate(可选), new_estimate(可选), reduce_by(可选)
issue jira_issue_archive_issue Archives an issue. PUT /rest/api/2/issue/{issueIdOrKey}/archive issue_id_or_key(必填), body(必填), notify_users(可选)
issue jira_issue_archive_issues Archives a list of issues. POST /rest/api/2/issue/archive body(必填), notify_users(可选)
issue jira_issue_assign Assigns an issue to a user. PUT /rest/api/2/issue/{issueIdOrKey}/assignee issue_id_or_key(必填), body(必填)
issue jira_issue_can_move_sub_task canMoveSubTask. GET /rest/api/2/issue/{issueIdOrKey}/subtask/move issue_id_or_key(必填)
issue jira_issue_create_issue Creates an issue or a sub-task from a JSON representation. POST /rest/api/2/issue body(必填), update_history(可选)
issue jira_issue_create_issues Creates issues or sub-tasks from a JSON representation. POST /rest/api/2/issue/bulk body(必填)
issue jira_issue_create_or_update_remote_issue_link Creates or updates a remote issue link from a JSON representation. If a globalId is provided and a remote issue link. POST /rest/api/2/issue/{issueIdOrKey}/remotelink issue_id_or_key(必填), body(必填)
issue jira_issue_delete_comment Deletes an existing comment . DELETE /rest/api/2/issue/{issueIdOrKey}/comment/{id} issue_id_or_key(必填), id(必填)
issue jira_issue_delete_issue Delete an issue. DELETE /rest/api/2/issue/{issueIdOrKey} issue_id_or_key(必填), delete_subtasks(可选)
issue jira_issue_delete_property Removes the property from the issue identified by the key or by the id. Ths user removing the property is required. DELETE /rest/api/2/issue/{issueIdOrKey}/properties/{propertyKey} issue_id_or_key(必填), property_key(必填)
issue jira_issue_delete_remote_issue_link_by_global_id Delete the remote issue link with the given global id on the issue. DELETE /rest/api/2/issue/{issueIdOrKey}/remotelink issue_id_or_key(必填), global_id(可选)
issue jira_issue_delete_remote_issue_link_by_id Delete the remote issue link with the given id on the issue. DELETE /rest/api/2/issue/{issueIdOrKey}/remotelink/{linkId} link_id(必填), issue_id_or_key(必填)
issue jira_issue_delete_worklog Deletes an existing worklog entry. DELETE /rest/api/2/issue/{issueIdOrKey}/worklog/{id} issue_id_or_key(必填), id(必填), adjust_estimate(可选), new_estimate(可选), increase_by(可选)
issue jira_issue_do_transition Perform a transition on an issue. POST /rest/api/2/issue/{issueIdOrKey}/transitions issue_id_or_key(必填), body(必填)
issue jira_issue_edit_issue Edits an issue from a JSON representation. PUT /rest/api/2/issue/{issueIdOrKey} issue_id_or_key(必填), body(必填), notify_users(可选)
issue jira_issue_get_comment Returns a single comment. GET /rest/api/2/issue/{issueIdOrKey}/comment/{id} issue_id_or_key(必填), id(必填), expand(可选)
issue jira_issue_get_comments Returns all comments for an issue. GET /rest/api/2/issue/{issueIdOrKey}/comment issue_id_or_key(必填), start_at(可选), max_results(可选), order_by(可选), expand(可选)
issue jira_issue_get_create_issue_meta_fields Returns the metadata for issue types used for creating issues. GET /rest/api/2/issue/createmeta/{projectIdOrKey}/issuetypes/{issueTypeId} issue_type_id(必填), project_id_or_key(必填), start_at(可选), max_results(可选)
issue jira_issue_get_create_issue_meta_project_issue_types Returns the metadata for issue types used for creating issues. GET /rest/api/2/issue/createmeta/{projectIdOrKey}/issuetypes project_id_or_key(必填), start_at(可选), max_results(可选)
issue jira_issue_get_edit_issue_meta Returns the meta data for editing an issue. GET /rest/api/2/issue/{issueIdOrKey}/editmeta issue_id_or_key(必填)
issue jira_issue_get_issue Returns a full representation of the issue for the given issue key. GET /rest/api/2/issue/{issueIdOrKey} issue_id_or_key(必填), fields(可选), expand(可选), properties(可选), update_history(可选)
issue jira_issue_get_issue_picker_resource Returns suggested issues which match the auto-completion query for the user which executes this request. This REST. GET /rest/api/2/issue/picker query(可选), current_jql(可选), current_issue_key(可选), current_project_id(可选), show_sub_tasks(可选), show_sub_task_parent(可选)
issue jira_issue_get_issue_watchers Returns the list of watchers for the issue with the given key. GET /rest/api/2/issue/{issueIdOrKey}/watchers issue_id_or_key(必填)
issue jira_issue_get_issue_worklog Returns all work logs for an issue. GET /rest/api/2/issue/{issueIdOrKey}/worklog issue_id_or_key(必填)
issue jira_issue_get_properties_keys Returns the keys of all properties for the issue identified by the key or by the id. GET /rest/api/2/issue/{issueIdOrKey}/properties issue_id_or_key(必填)
issue jira_issue_get_property Returns the value of the property with a given key from the issue identified by the key or by the id. The user who retrieves. GET /rest/api/2/issue/{issueIdOrKey}/properties/{propertyKey} issue_id_or_key(必填), property_key(必填)
issue jira_issue_get_remote_issue_link_by_id Get the remote issue link with the given id on the issue. GET /rest/api/2/issue/{issueIdOrKey}/remotelink/{linkId} link_id(必填), issue_id_or_key(必填)
issue jira_issue_get_remote_issue_links A REST sub-resource representing the remote issue links on the issue. GET /rest/api/2/issue/{issueIdOrKey}/remotelink issue_id_or_key(必填), global_id(可选)
issue jira_issue_get_sub_tasks Returns an issue's subtask list. GET /rest/api/2/issue/{issueIdOrKey}/subtask issue_id_or_key(必填)
issue jira_issue_get_transitions Get a list of the transitions possible for this issue by the current user, along with fields that are required and their types. GET /rest/api/2/issue/{issueIdOrKey}/transitions issue_id_or_key(必填), transition_id(可选)
issue jira_issue_get_votes A REST sub-resource representing the voters on the issue. GET /rest/api/2/issue/{issueIdOrKey}/votes issue_id_or_key(必填)
issue jira_issue_get_worklog Returns a specific worklog. GET /rest/api/2/issue/{issueIdOrKey}/worklog/{id} issue_id_or_key(必填), id(必填)
issue jira_issue_move_sub_tasks Reorders an issue's subtasks by moving the subtask at index "from". POST /rest/api/2/issue/{issueIdOrKey}/subtask/move issue_id_or_key(必填), body(必填)
issue jira_issue_notify Sends a notification (email) to the list or recipients defined in the request. POST /rest/api/2/issue/{issueIdOrKey}/notify issue_id_or_key(必填), body(必填)
issue jira_issue_remove_vote Remove your vote from an issue. (i.e. "unvote"). DELETE /rest/api/2/issue/{issueIdOrKey}/votes issue_id_or_key(必填)
issue jira_issue_remove_watcher Removes a user from an issue's watcher list. DELETE /rest/api/2/issue/{issueIdOrKey}/watchers issue_id_or_key(必填), username(可选)
issue jira_issue_restore_issue Restores an archived issue. PUT /rest/api/2/issue/{issueIdOrKey}/restore issue_id_or_key(必填), body(必填), notify_users(可选)
issue jira_issue_set_property Sets the value of the specified issue's property. PUT /rest/api/2/issue/{issueIdOrKey}/properties/{propertyKey} issue_id_or_key(必填), property_key(必填), body(必填)
issue jira_issue_update_comment Updates an existing comment using its JSON representation. PUT /rest/api/2/issue/{issueIdOrKey}/comment/{id} issue_id_or_key(必填), id(必填), body(必填), expand(可选)
issue jira_issue_update_remote_issue_link Updates a remote issue link from a JSON representation. Any fields not provided are set to null. PUT /rest/api/2/issue/{issueIdOrKey}/remotelink/{linkId} link_id(必填), issue_id_or_key(必填), body(必填)
issue jira_issue_update_worklog Updates an existing worklog entry. PUT /rest/api/2/issue/{issueIdOrKey}/worklog/{id} issue_id_or_key(必填), id(必填), body(必填), adjust_estimate(可选), new_estimate(可选)
issuelink jira_issueLink_delete_issue_link Deletes an issue link with the specified id. DELETE /rest/api/2/issueLink/{linkId} link_id(必填)
issuelink jira_issueLink_get_issue_link Returns an issue link with the specified id. GET /rest/api/2/issueLink/{linkId} link_id(必填)
issuelink jira_issueLink_link_issues Creates an issue link between two issues. POST /rest/api/2/issueLink body(必填)
issuelinktype jira_issueLinkType_create_issue_link_type Create a new issue link type. POST /rest/api/2/issueLinkType body(必填)
issuelinktype jira_issueLinkType_delete_issue_link_type Delete the specified issue link type. DELETE /rest/api/2/issueLinkType/{issueLinkTypeId} issue_link_type_id(必填)
issuelinktype jira_issueLinkType_get_issue_link_type Returns for a given issue link type id all information about this issue link type. GET /rest/api/2/issueLinkType/{issueLinkTypeId} issue_link_type_id(必填)
issuelinktype jira_issueLinkType_get_issue_link_types Returns a list of available issue link types, if issue linking is enabled. GET /rest/api/2/issueLinkType
issuelinktype jira_issueLinkType_update_issue_link_type Update the specified issue link type. PUT /rest/api/2/issueLinkType/{issueLinkTypeId} issue_link_type_id(必填), body(必填)
issuetype jira_issuetype_create_issue_type Creates an issue type from a JSON representation and adds the issue newly created issue type to the default issue. POST /rest/api/2/issuetype body(必填)
issuetype jira_issuetype_delete_issue_type Deletes the specified issue type. If the issue type has any associated issues, these issues will be migrated to. DELETE /rest/api/2/issuetype/{id} id(必填), alternative_issue_type_id(可选)
issuetype jira_issuetype_get_alternative_issue_types Returns a list of all alternative issue types for the given issue type id. The list will contain these issues types, to which. GET /rest/api/2/issuetype/{id}/alternatives id(必填)
issuetype jira_issuetype_get_issue_all_types Returns a list of all issue types visible to the user. GET /rest/api/2/issuetype
issuetype jira_issuetype_get_issue_type Returns a full representation of the issue type that has the given id. GET /rest/api/2/issuetype/{id} id(必填)
issuetype jira_issuetype_get_paginated_issue_types Returns paginated list of filtered issue types. GET /rest/api/2/issuetype/page start_at(可选), max_results(可选), query(可选), project_ids(可选)
issuetype jira_issuetype_update_issue_type Updates the specified issue type from a JSON representation. PUT /rest/api/2/issuetype/{id} id(必填), body(必填)
jql jira_jql_get_auto_complete Returns the auto complete data required for JQL searches. GET /rest/api/2/jql/autocompletedata
jql jira_jql_get_field_auto_complete_for_query_string Returns auto complete suggestions for JQL search. GET /rest/api/2/jql/autocompletedata/suggestions field_name(可选), field_value(可选), predicate_name(可选), predicate_value(可选)
mypermissions jira_mypermissions_get_permissions Returns all permissions in the system and whether the currently logged in user has them. You can optionally provide a specific context to get permissions for. GET /rest/api/2/mypermissions project_key(可选), project_id(可选), issue_key(可选), issue_id(可选)
mypreferences jira_mypreferences_get_preference Returns preference of the currently logged in user. Preference key must be provided as input parameter (key). The. GET /rest/api/2/mypreferences key(可选)
mypreferences jira_mypreferences_remove_preference Removes preference of the currently logged in user. Preference key must be provided as input parameters (key). If. DELETE /rest/api/2/mypreferences key(可选)
mypreferences jira_mypreferences_set_preference Sets preference of the currently logged in user. Preference key must be provided as input parameters (key). Value. PUT /rest/api/2/mypreferences body(必填), key(可选)
myself jira_myself_change_my_password Modify caller password. PUT /rest/api/2/myself/password body(必填)
myself jira_myself_get_user Returns currently logged user. This resource cannot be accessed anonymously. GET /rest/api/2/myself
myself jira_myself_update_user Modify currently logged user. The "value" fields present will override the existing value. PUT /rest/api/2/myself body(必填)
permissions jira_permissions_get_all_permissions Returns all permissions that are present in the Jira instance - Global, Project and the global ones added by plugins. GET /rest/api/2/permissions
priority jira_priority_get_priorities_get_page Returns a list of all issue priorities. GET /rest/api/2/priority/page start_at(可选), max_results(可选), query(可选), project_ids(可选)
priority jira_priority_get_priorities_get_priority Returns a list of all issue priorities. GET /rest/api/2/priority
priority jira_priority_get_priority Returns an issue priority. GET /rest/api/2/priority/{id} id(必填)
project jira_project_archive_project Archives a project. PUT /rest/api/2/project/{projectIdOrKey}/archive project_id_or_key(必填), body(必填)
project jira_project_create_project Creates a new project. POST /rest/api/2/project body(必填)
project jira_project_delete_project Deletes a project. DELETE /rest/api/2/project/{projectIdOrKey} project_id_or_key(必填)
project jira_project_get_accessible_project_type_by_key Returns the project type with the given key, if it is accessible to the logged in user. GET /rest/api/2/project/type/{projectTypeKey}/accessible project_type_key(必填)
project jira_project_get_all_project_types Returns all the project types defined on the Jira instance, not taking into account whether. GET /rest/api/2/project/type
project jira_project_get_all_projects Returns all projects which are visible for the currently logged in user. If no user is logged in, it returns the. GET /rest/api/2/project expand(可选), recent(可选), include_archived(可选), browse_archive(可选)
project jira_project_get_all_statuses Get all issue types with valid status values for a project. GET /rest/api/2/project/{projectIdOrKey}/statuses project_id_or_key(必填)
project jira_project_get_project Contains a full representation of a project in JSON format. GET /rest/api/2/project/{projectIdOrKey} project_id_or_key(必填), expand(可选)
project jira_project_get_project_components Contains a full representation of a the specified project's components. GET /rest/api/2/project/{projectIdOrKey}/components project_id_or_key(必填)
project jira_project_get_project_role Returns the details for a given project role in a project. GET /rest/api/2/project/{projectIdOrKey}/role/{id} project_id_or_key(必填), id(必填)
project jira_project_get_project_roles Returns all roles in the given project Id or key, with links to full details on each role. GET /rest/api/2/project/{projectIdOrKey}/role project_id_or_key(必填)
project jira_project_get_project_type_by_key Returns the project type with the given key. GET /rest/api/2/project/type/{projectTypeKey} project_type_key(必填)
project jira_project_get_project_versions Contains a full representation of a the specified project's versions. GET /rest/api/2/project/{projectIdOrKey}/versions project_id_or_key(必填), expand(可选)
project jira_project_get_project_versions_paginated Returns all versions for the specified project. Results are paginated. GET /rest/api/2/project/{projectIdOrKey}/version project_id_or_key(必填), start_at(可选), max_results(可选), order_by(可选), expand(可选)
project jira_project_get_security_levels_for_project Returns all security levels for the project that the current logged in user has access to. GET /rest/api/2/project/{projectKeyOrId}/securitylevel project_key_or_id(必填)
project jira_project_restore_project Restore an archived project. PUT /rest/api/2/project/{projectIdOrKey}/restore project_id_or_key(必填), body(必填)
project jira_project_update_project Updates a project. PUT /rest/api/2/project/{projectIdOrKey} project_id_or_key(必填), body(必填), expand(可选)
projectcategory jira_projectCategory_create_project_category Create a project category via POST. POST /rest/api/2/projectCategory body(必填)
projectcategory jira_projectCategory_get_all_project_categories Returns all project categories. GET /rest/api/2/projectCategory
projectcategory jira_projectCategory_get_project_category_by_id Contains a representation of a project category in JSON format. GET /rest/api/2/projectCategory/{id} id(必填)
projectcategory jira_projectCategory_remove_project_category Delete a project category. DELETE /rest/api/2/projectCategory/{id} id(必填)
projectcategory jira_projectCategory_update_project_category Modify a project category via PUT. Any fields present in the PUT will override existing values. As a convenience, if a field. PUT /rest/api/2/projectCategory/{id} id(必填), body(必填)
projectvalidate jira_projectvalidate_get_project Validates a project key. GET /rest/api/2/projectvalidate/key key(可选)
resolution jira_resolution_get_paginated_resolutions Returns paginated list of filtered resolutions. GET /rest/api/2/resolution/page start_at(可选), max_results(可选), query(可选)
resolution jira_resolution_get_resolution Returns a resolution. GET /rest/api/2/resolution/{id} id(必填)
resolution jira_resolution_get_resolutions Returns a list of all resolutions. GET /rest/api/2/resolution
role jira_role_get_project_role_actors_for_role Gets default actors for the given role. GET /rest/api/2/role/{id}/actors id(必填)
role jira_role_get_project_roles Get all the ProjectRoles available in Jira. Currently this list is global. GET /rest/api/2/role
role jira_role_get_project_roles_by_id Get a specific ProjectRole available in Jira. GET /rest/api/2/role/{id} id(必填)
search jira_search_search Searches for issues using JQL. GET /rest/api/2/search jql(可选), start_at(可选), max_results(可选), validate_query(可选), fields(可选), expand(可选)
search jira_search_search_using_search_request Performs a search using JQL. POST /rest/api/2/search body(必填)
securitylevel jira_securitylevel_get_issuesecuritylevel Returns a full representation of the security level that has the given id. GET /rest/api/2/securitylevel/{id} id(必填)
serverinfo jira_serverInfo_get_server_info Returns general information about the current Jira server. GET /rest/api/2/serverInfo do_health_check(可选)
status jira_status_get_paginated_statuses Returns paginated list of filtered statuses. GET /rest/api/2/status/page start_at(可选), max_results(可选), query(可选), project_ids(可选), issue_type_ids(可选)
status jira_status_get_status Returns a full representation of the Status having the given id or name. GET /rest/api/2/status/{idOrName} id_or_name(必填)
status jira_status_get_statuses Returns a list of all statuses. GET /rest/api/2/status
statuscategory jira_statuscategory_get_status_categories Returns a list of all status categories. GET /rest/api/2/statuscategory
statuscategory jira_statuscategory_get_status_category Returns a full representation of the StatusCategory having the given id or key. GET /rest/api/2/statuscategory/{idOrKey} id_or_key(必填)
user jira_user_find_assignable_users Returns a list of users that match the search string. This resource cannot be accessed anonymously. GET /rest/api/2/user/assignable/search username(可选), project(可选), issue_key(可选), max_results(可选), action_descriptor_id(可选)
user jira_user_find_bulk_assignable_users Returns a list of users that match the search string and can be assigned issues for all the given projects. GET /rest/api/2/user/assignable/multiProjectSearch username(可选), project_keys(可选), max_results(可选)
user jira_user_find_users Returns a list of users that match the search string. This resource cannot be accessed anonymously. GET /rest/api/2/user/search username(可选), start_at(可选), max_results(可选), include_active(可选), include_inactive(可选)
user jira_user_find_users_for_picker Returns a list of users matching query with highlighting. GET /rest/api/2/user/picker query(可选), max_results(可选), show_avatar(可选), exclude(可选)
user jira_user_find_users_with_all_permissions Returns a list of active users that match the search string and have all specified permissions for the project or issue. GET /rest/api/2/user/permission/search username(可选), permissions(可选), issue_key(可选), project_key(可选), start_at(可选), max_results(可选)
user jira_user_find_users_with_browse_permission Returns a list of active users that match the search string. This resource cannot be accessed anonymously. GET /rest/api/2/user/viewissue/search username(可选), issue_key(可选), project_key(可选), max_results(可选)
user jira_user_get_user Returns a user. This resource cannot be accessed anonymously. GET /rest/api/2/user username(可选), key(可选), include_deleted(可选)
version jira_version_create_or_update_remote_version_link_post_remotelink Create a remote version link via POST. The link's global ID will be taken from the. POST /rest/api/2/version/{versionId}/remotelink version_id(必填), body(必填)
version jira_version_create_or_update_remote_version_link_post_remotelink_2 Create a remote version link via POST. The link's global ID will be taken from the. POST /rest/api/2/version/{versionId}/remotelink/{globalId} version_id(必填), global_id(必填), body(必填)
version jira_version_create_version Create a version via POST. POST /rest/api/2/version body(必填)
version jira_version_delete_delete_version Delete a project version. DELETE /rest/api/2/version/{id} id(必填), move_fix_issues_to(可选), move_affected_issues_to(可选)
version jira_version_delete_post_remove_and_swap Delete a project version. POST /rest/api/2/version/{id}/removeAndSwap id(必填), body(必填)
version jira_version_delete_remote_version_link Delete a specific remote version link with the given version ID and global ID. DELETE /rest/api/2/version/{versionId}/remotelink/{globalId} version_id(必填), global_id(必填)
version jira_version_delete_remote_version_links_by_version_id Delete all remote version links for a given version ID. DELETE /rest/api/2/version/{versionId}/remotelink version_id(必填)
version jira_version_get_paginated_versions Retrieve paginated collection of versions matching given query optionally filtered by given project IDs. GET /rest/api/2/version start_at(可选), max_results(可选), query(可选), project_ids(可选)
version jira_version_get_remote_version_link A REST sub-resource representing a remote version link. GET /rest/api/2/version/{versionId}/remotelink/{globalId} version_id(必填), global_id(必填)
version jira_version_get_remote_version_links Returns the remote version links for a given global ID. GET /rest/api/2/version/remotelink global_id(可选)
version jira_version_get_remote_version_links_by_version_id Returns the remote version links associated with the given version ID. GET /rest/api/2/version/{versionId}/remotelink version_id(必填)
version jira_version_get_version Returns a project version. GET /rest/api/2/version/{id} id(必填), expand(可选)
version jira_version_get_version_related_issues Returns a bean containing the number of fixed in and affected issues for the given version. GET /rest/api/2/version/{id}/relatedIssueCounts id(必填)
version jira_version_get_version_unresolved_issues Returns the number of unresolved issues for the given version. GET /rest/api/2/version/{id}/unresolvedIssueCount id(必填)
version jira_version_merge Merge versions. PUT /rest/api/2/version/{id}/mergeto/{moveIssuesTo} move_issues_to(必填), id(必填), body(必填)
version jira_version_move_version Modify a version's sequence within a project. POST /rest/api/2/version/{id}/move id(必填), body(必填)
version jira_version_update_version Modify a version via PUT. Any fields present in the PUT will override existing values. As a convenience, if a field. PUT /rest/api/2/version/{id} id(必填), body(必填)
worklog jira_worklog_get_ids_of_worklogs_deleted_since Returns worklogs id and delete time of worklogs that was deleted since given time. GET /rest/api/2/worklog/deleted since(可选)
worklog jira_worklog_get_ids_of_worklogs_modified_since Returns worklogs id and update time of worklogs that was updated since given time. GET /rest/api/2/worklog/updated since(可选)
worklog jira_worklog_get_worklogs_for_ids Returns worklogs for given worklog ids. Only worklogs to which the calling user has permissions, will be included in the result. POST /rest/api/2/worklog/list body(必填)

测试示例

# Health check
curl -s http://localhost:8080/health

# Call a tool via the MCP protocol (streamable HTTP) — requires an
# initialize handshake first per the MCP spec; abbreviated example below
# shows the tool-call request body only:
curl -s -X POST http://localhost:8080/mcp \
  -H "X-Jira-Site: jira.example.com" \
  -H "X-Jira-Username: api_user" \
  -H "X-Jira-Password: Sample_Passw0rd!" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -H "mcp-session-id: <session-id-from-initialize>" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
      "name": "jira_myself_get_user",
      "arguments": {}
    }
  }'

Self-test limitation (2026-07-29): the provided test account (jira.mspbots.ai, user mspbots_api) could not be live-verified from this build environment — direct requests to jira.mspbots.ai (both through this server and via plain curl) consistently return a generic 404 page not found, and DNS resolves the host to a sandbox-local address. This is consistent with MSPbots' internal servers being RDP-only / network-isolated from this environment, not a bug in the server itself. What was verified end-to-end from this environment: the MCP protocol handshake, tools/list returning all 214 registered tools, the 401 credential-gating behavior, and that a live call reaches the constructed URL and receives an HTTP response (proving the request/auth-header plumbing works) — only the vendor-side reachability of the real instance could not be confirmed. A real functional self-test against jira.mspbots.ai should be run from a network that can actually reach it (e.g. via RDP to an MSPbots-internal host).

API Reference

Known Gaps

  • Scope was an explicit user decision: expand beyond MSPbots' literal 17 endpoints to core work-item/project-management categories, excluding admin/scheme/system categories (workflow scheme, permission scheme, avatar, reindex, plugin management, etc.).
  • body parameters are untyped (dict) rather than fully modeled — the Jira REST API reference documents the exact schema per resource, but reproducing all of them as typed Python parameters was out of scope for a 214-tool generation.
  • Live functional self-test could not be completed from this build environment due to jira.mspbots.ai being unreachable here (see 测试示例 above for exactly what was and wasn't verified).
  • Several operations mutate or delete real data (jira_issue_delete_issue, jira_project_delete_project, jira_project_archive_project, jira_version_delete_delete_version, etc.) — treat any DELETE/destructive POST/PUT tool as irreversible against a production Jira instance and confirm with a human before invoking.

from github.com/MSPbotsAI/jiradatacenter-mcp

Установка Jiradatacenter

У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.

▸ github.com/MSPbotsAI/jiradatacenter-mcp

FAQ

Jiradatacenter MCP бесплатный?

Да, Jiradatacenter MCP бесплатный — установка в пару кликов через Unyly без оплаты.

Нужен ли API-ключ для Jiradatacenter?

Нет, Jiradatacenter работает без API-ключей и переменных окружения.

Jiradatacenter — hosted или self-hosted?

Доступен hosted-вариант: Unyly запускает сервер в облаке, локальная установка не обязательна.

Как установить Jiradatacenter в Claude Desktop, Claude Code или Cursor?

Открой Jiradatacenter на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.

Похожие MCP

Compare Jiradatacenter with

Не уверен что выбрать?

Найди свой стек за 60 секунд

Автор?

Embed-бейдж для README

Похожее

Все в категории productivity