Atlassian Jira Cloud integration. Enables AI systems to interact with Jira projects, issues, comments, and related development information in real time.
A Node.js/TypeScript Model Context Protocol (MCP) server for Atlassian Jira Cloud. Enables AI systems (e.g., LLMs like Claude or Cursor AI) to securely interact with your Jira projects, issues, comments, and related development information in real time.
Model Context Protocol (MCP) is an open standard for securely connecting AI systems to external tools and data sources. This server implements MCP for Jira Cloud, enabling AI assistants to interact with your Jira instance programmatically.
mcp-jira-access
).Edit or create ~/.mcp/configs.json
:
{
"jira": {
"environments": {
"ATLASSIAN_SITE_NAME": "<YOUR_SITE_NAME>",
"ATLASSIAN_USER_EMAIL": "<YOUR_ATLASSIAN_EMAIL>",
"ATLASSIAN_API_TOKEN": "<YOUR_COPIED_API_TOKEN>"
}
}
}
<YOUR_SITE_NAME>
: Your Jira site name (e.g., mycompany
for mycompany.atlassian.net
).<YOUR_ATLASSIAN_EMAIL>
: Your Atlassian account email.<YOUR_COPIED_API_TOKEN>
: The API token from Step 1.export ATLASSIAN_SITE_NAME="<YOUR_SITE_NAME>"
export ATLASSIAN_USER_EMAIL="<YOUR_EMAIL>"
export ATLASSIAN_API_TOKEN="<YOUR_API_TOKEN>"
npx
npx -y @aashari/mcp-server-atlassian-jira ls-projects
npm install -g @aashari/mcp-server-atlassian-jira
mcp-atlassian-jira ls-projects
Configure your MCP-compatible client (e.g., Claude, Cursor AI):
{
"mcpServers": {
"jira": {
"command": "npx",
"args": ["-y", "@aashari/mcp-server-atlassian-jira"]
}
}
}
MCP tools use snake_case
names, camelCase
parameters, and return Markdown-formatted responses.
name
: str opt, limit
: num opt, startAt
: num opt, orderBy
: str opt). Use: View available projects.projectKeyOrId
: str req). Use: Access project components and metadata.jql
: str opt, projectKeyOrId
: str opt, statuses
: str[] opt, orderBy
: str opt, limit
: num opt, startAt
: num opt). Use: Find issues matching criteria.issueIdOrKey
: str req). Use: View issue with comments and development info.issueIdOrKey
: str req, limit
: num opt, startAt
: num opt, orderBy
: str opt). Use: Read issue discussion.issueIdOrKey
: str req, commentBody
: str req). Use: Add feedback to issues.projectKeyOrId
: str opt). Use: Check valid status transitions.jira_ls_projects
Basic List Projects:
{}
Filtered Projects:
{
"name": "Platform",
"limit": 10,
"orderBy": "name"
}
jira_get_project
Get Project by Key:
{ "projectKeyOrId": "DEV" }
Get Project by ID:
{ "projectKeyOrId": "10001" }
jira_ls_issues
Search with JQL:
{ "jql": "project = DEV AND status = 'In Progress'" }
Filter by Project and Status:
{
"projectKeyOrId": "DEV",
"statuses": ["In Progress", "To Do"],
"limit": 15
}
jira_get_issue
Get Issue Details:
{ "issueIdOrKey": "PROJ-123" }
jira_ls_comments
List Comments:
{ "issueIdOrKey": "PROJ-123" }
Sorted Comments:
{
"issueIdOrKey": "PROJ-123",
"limit": 10,
"orderBy": "created DESC"
}
jira_add_comment
Add Comment:
{
"issueIdOrKey": "PROJ-123",
"commentBody": "Thanks for the update. I'll review this by end of day."
}
jira_ls_statuses
List All Statuses:
{}
Project-Specific Statuses:
{ "projectKeyOrId": "DEV" }
This server supports two transport modes for different integration scenarios:
# Run with STDIO transport (default for AI assistants)
TRANSPORT_MODE=stdio npx @aashari/mcp-server-atlassian-jira
# Using npm scripts (after installation)
npm run mcp:stdio
# Run with HTTP transport (default when no CLI args)
TRANSPORT_MODE=http npx @aashari/mcp-server-atlassian-jira
# Using npm scripts (after installation)
npm run mcp:http
# Test with MCP Inspector
npm run mcp:inspect
Transport Configuration:
TRANSPORT_MODE
: Set to stdio
or http
(default: http
for server mode, stdio
for MCP clients)PORT
: HTTP server port (default: 3000)DEBUG
: Enable debug logging (default: false)Authentication:
ATLASSIAN_JIRA_URL
: Your Jira instance URLATLASSIAN_USER_EMAIL
: Your Atlassian account emailATLASSIAN_API_TOKEN
: Your Atlassian API tokenCLI commands use kebab-case
. Run --help
for details (e.g., mcp-atlassian-jira ls-projects --help
).
--name
, --limit
, --start-at
, --order-by
). Ex: mcp-atlassian-jira ls-projects
.--project-key-or-id
). Ex: mcp-atlassian-jira get-project --project-key-or-id DEV
.--jql
, --project-key-or-id
, --statuses
, --order-by
, --limit
, --start-at
). Ex: mcp-atlassian-jira ls-issues --project-key-or-id DEV
.--issue-id-or-key
). Ex: mcp-atlassian-jira get-issue --issue-id-or-key PROJ-123
.--issue-id-or-key
, --limit
, --start-at
, --order-by
). Ex: mcp-atlassian-jira ls-comments --issue-id-or-key PROJ-123
.--issue-id-or-key
, --body
). Ex: mcp-atlassian-jira add-comment --issue-id-or-key PROJ-123 --body "Comment text"
.--project-key-or-id
). Ex: mcp-atlassian-jira ls-statuses
.Basic List:
mcp-atlassian-jira ls-projects
Filtered List:
mcp-atlassian-jira ls-projects --name "Platform" --limit 10 --order-by "name"
mcp-atlassian-jira get-project --project-key-or-id DEV
With JQL:
mcp-atlassian-jira ls-issues --jql "project = DEV AND status = 'In Progress'"
With Filters:
mcp-atlassian-jira ls-issues --project-key-or-id DEV --statuses "In Progress" "To Do" --limit 15
mcp-atlassian-jira get-issue --issue-id-or-key PROJ-123
mcp-atlassian-jira ls-comments --issue-id-or-key PROJ-123 --order-by "created DESC"
mcp-atlassian-jira add-comment --issue-id-or-key PROJ-123 --body "This issue has been prioritized for the next sprint."
mcp-atlassian-jira ls-statuses --project-key-or-id DEV
All responses are Markdown-formatted, including:
# Jira Projects
Showing **4** projects matching "Platform" out of 15 total projects.
| Key | Name | Lead | Issues |
|---|---|---|---|
| [PLAT](#) | Platform Services | Maria Johnson | 204 issues |
| [PLTX](#) | Platform Extensions | Chris Smith | 156 issues |
| [PAPI](#) | Platform API | Dev Team | 87 issues |
| [PINT](#) | Platform Integrations | Alex Wong | 42 issues |
*Retrieved from mycompany.atlassian.net on 2025-05-19 14:22 UTC*
# Issue: PROJ-123
**[PROJ-123](https://mycompany.atlassian.net/browse/PROJ-123): Implement OAuth2 authentication flow**
**Project:** [PROJ](#) (Project Name)
**Type:** 🛠️ Task
**Status:** 🟡 In Progress
**Priority:** 🔼 High
**Assignee:** Jane Doe
**Reporter:** John Smith
**Created:** 2025-05-01
**Updated:** 2025-05-18
## Description
We need to implement the OAuth2 authentication flow with the following requirements:
- Support authorization code flow
- Implement PKCE extension
- Store refresh tokens securely
- Add automatic token refresh
## Comments (3)
### John Smith - 2025-05-01
Initial requirements attached. See the authentication flow diagram.
### Jane Doe - 2025-05-15
I've started implementation. Questions about token expiration and storage.
### Project Lead - 2025-05-18
Looks good so far. Please add unit tests for token refresh logic.
## Development Information
**Branch:** feature/oauth2-auth
**Commits:** 7 commits by Jane Doe
**Pull Request:** [PR-45](https://github.com/mycompany/project/pull/45) (Open)
*Retrieved on 2025-05-19 14:25 UTC*
# Clone repository
git clone https://github.com/aashari/mcp-server-atlassian-jira.git
cd mcp-server-atlassian-jira
# Install dependencies
npm install
# Run in development mode
npm run dev:server
# Run tests
npm test
Contributions are welcome! Please:
git checkout -b feature/xyz
).git commit -m "Add xyz feature"
).git push origin feature/xyz
).See CONTRIBUTING.md for details.