Atlassian Jira Data Center MCP

Community server for self-hosted Jira Data Center: JQL search, issue edits, comments, links and transitions

By evgeniy.moroz (individual) TypeScript Local · stdio Productivity

58 popularity score ★ 108 repo ↓ 17k/wk

Connect your client

Local (npm)

Add in one click

Opens the app, which asks before it adds the server. Then replace each <NAME> in its settings with your value.

Or add it by command or config

It needs JIRA_HOST, JIRA_API_TOKEN. Replace each <NAME> with your value.

Claude CodeTerminal
claude mcp add atlassian-jira-data-center -e JIRA_HOST=<JIRA_HOST> -e JIRA_API_TOKEN=<JIRA_API_TOKEN> -- npx -y @atlassian-dc-mcp/jira
Claude Desktopclaude_desktop_config.json
{
  "mcpServers": {
    "atlassian-jira-data-center": {
      "command": "npx",
      "args": [
        "-y",
        "@atlassian-dc-mcp/jira"
      ],
      "env": {
        "JIRA_HOST": "<JIRA_HOST>",
        "JIRA_API_TOKEN": "<JIRA_API_TOKEN>"
      }
    }
  }
}
Cursor~/.cursor/mcp.json
{
  "mcpServers": {
    "atlassian-jira-data-center": {
      "command": "npx",
      "args": [
        "-y",
        "@atlassian-dc-mcp/jira"
      ],
      "env": {
        "JIRA_HOST": "<JIRA_HOST>",
        "JIRA_API_TOKEN": "<JIRA_API_TOKEN>"
      }
    }
  }
}
VS Code.vscode/mcp.json
{
  "servers": {
    "atlassian-jira-data-center": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@atlassian-dc-mcp/jira"
      ],
      "env": {
        "JIRA_HOST": "<JIRA_HOST>",
        "JIRA_API_TOKEN": "<JIRA_API_TOKEN>"
      }
    }
  }
}
Codex~/.codex/config.toml
[mcp_servers.atlassian-jira-data-center]
command = "npx"
args = ["-y", "@atlassian-dc-mcp/jira"]

[mcp_servers.atlassian-jira-data-center.env]
JIRA_HOST = "<JIRA_HOST>"
JIRA_API_TOKEN = "<JIRA_API_TOKEN>"
Gemini CLITerminal
gemini mcp add --scope user -e JIRA_HOST=<JIRA_HOST> -e JIRA_API_TOKEN=<JIRA_API_TOKEN> atlassian-jira-data-center npx -- -y @atlassian-dc-mcp/jira

Settings 5

JIRA_HOST Required: Jira host and port, without protocol (https is assumed). Alternatively set JIRA_API_BASE_PATH to the full REST base URL.
JIRA_API_TOKEN Required: Personal access token for Jira Data Center.
JIRA_API_BASE_PATH Optional: Full API base URL with protocol (e.g. https://host/rest), used instead of JIRA_HOST.
JIRA_DEFAULT_PAGE_SIZE Optional: Default page size for paged read tools; 25 when unset.
JIRA_ATTACHMENTS_DOWNLOAD_ENABLED Optional: Set to true to let jira_downloadAttachment save into the download root.

What it does

This server connects an assistant to a self-managed Jira Data Center instance through Jira's REST API, signing in with a personal access token. It can run JQL searches, open an issue with chosen fields, read and write comments, create and update issues (custom fields included), move an issue through its workflow, link and unlink issues, and watch or unwatch an issue as the token's own user.

It is one of three packages in a community monorepo that also covers Confluence and Bitbucket Data Center; each is installed and configured on its own. The project says it is not affiliated with or supported by Atlassian.

The v0.38.0 source registers 17 tools, one more than the package README lists: jira_getIssueDevelopmentInfo reads the pull requests, commits or branches shown in an issue's Development panel, and defaults to Bitbucket pull requests (packages/jira/src/index.ts). Attachment upload is registered only when an operator turns it on. Paged reads return 25 items unless JIRA_DEFAULT_PAGE_SIZE or a tool's maxResults says otherwise.

A bundled setup subcommand (npx @atlassian-dc-mcp/jira setup) checks the host and token against Jira and stores them: in the login Keychain on macOS, or in a 0600 file under ~/.atlassian-dc-mcp on Linux and Windows. After that the client entry needs no environment variables. Environment variables, then a shared dotenv file named by ATLASSIAN_DC_MCP_CONFIG_FILE or ./.env, take precedence over stored values.

What it needs

RuntimeNode.js 18+

Node.js 18 or newer, for npx. Access to a Jira Data Center instance and a personal access token created under Profile > Personal Access Tokens. The server reaches the instance by host name (https is assumed) or by a full JIRA_API_BASE_PATH URL. What it can do is limited by that token's Jira permissions.

Limits

It talks to Jira Data Center's REST API; the docs say nothing about Jira Cloud's API beyond using example hosts. It will not start unless it finds a token and either a host or an API base path, from the environment, a dotenv file, the setup file or the Keychain. Watching and unwatching apply only to the token's own user. Without the opt-in settings, attachments come back only inline (by default nothing is inlined, and at most 1 MiB with maxInlineBytes), and jira_uploadAttachment does not exist. When local file access is on, files are capped at 25 MiB unless the size settings change it. It has no tools to delete issues or comments.

Who it suits

It suits teams on self-hosted Jira Data Center who want an assistant to search, triage and update issues with a personal token, running on their own machine. Since it can create, edit, transition and link issues, use a token with limited permissions if you only want reads. The same maintainer's Confluence and Bitbucket Data Center packages are separate servers. Teams on Jira Cloud should look for a server built for Cloud, since this one is written for the Data Center API.

Tools 17

jira_searchIssues
Run a JQL search, with paging, field selection and expansions
jira_getIssue
Fetch one issue by key, with chosen fields and expansions
jira_getIssueComments
List the comments on an issue, paged
jira_createIssue
Create an issue in a project, with optional extra or custom fields
jira_updateIssue
Change an issue's summary, description, type or other fields
jira_postIssueComment
Add a wiki-markup comment to an issue
jira_updateIssueComment
Replace the text of an existing comment
jira_getTransitions
List the workflow transitions open to an issue
jira_getIssueDevelopmentInfo
Read the linked pull requests, commits or branches from an issue's Development panel
jira_transitionIssue
Move an issue to a new status through a transition
jira_getIssueLinkTypes
List the link types the instance defines
jira_linkIssues
Link two issues with a named link type, optionally with a comment
jira_unlinkIssues
Remove an issue link by its id
jira_watchIssue
Add the token's user as a watcher of an issue
jira_unwatchIssue
Remove the token's user from an issue's watchers
jira_uploadAttachment
Attach a file from the configured upload folder to an issue; only present when uploads are enabled
jira_downloadAttachment
Fetch an issue's attachments inline, or save them to the configured download folder when enabled

Similar servers