hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Integrations
Allows interaction with Jira tickets, including listing tickets, viewing details, creating new tickets, adding comments, and updating ticket status through Jira's API.
Jira MCP Server for Cursor
A TypeScript-based MCP server that integrates with Jira, allowing Cursor to interact with Jira tickets.
Features
- List Jira tickets
- Get ticket details
- Get ticket comments
- Create new tickets
- Add comments to tickets
- Update ticket status
- Full MCP protocol support for Cursor integration
Setup
- Install dependencies:
- Create a
.env
file based on.env.example
and fill in your Jira credentials:
To get your Jira API token:
- Log in to https://id.atlassian.com/manage/api-tokens
- Click "Create API token"
- Copy the token and paste it in your
.env
file
Development
Run the development server:
Build and Run
Build the project:
Start the server:
Cursor Integration
To use this MCP server with Cursor, you have two options:
Option 1: Command-based Integration (Recommended)
- Build the project:
- Open Cursor's settings:
- Click on the Cursor menu
- Select "Settings" (or use the keyboard shortcut)
- Navigate to the "Extensions" or "Integrations" section
- Add the MCP configuration:
Replace /path/to/jira-mcp-cursor
with the absolute path to your project.
Option 2: HTTP-based Integration (Alternative)
- Start the MCP server (if not already running):
- Open Cursor's settings:
- Click on the Cursor menu
- Select "Settings" (or use the keyboard shortcut)
- Navigate to the "Extensions" or "Integrations" section
- Add the MCP configuration:
Using Jira in Cursor
After configuring the MCP server, you can use Jira commands directly in Cursor:
/jira list
- List your tickets/jira view TICKET-123
- View ticket details/jira comments TICKET-123
- Get ticket comments/jira create
- Create a new ticket/jira comment TICKET-123
- Add a comment/jira status TICKET-123
- Update ticket status
MCP Protocol Support
The server implements the Model-Client-Protocol (MCP) required by Cursor:
- Stdio communication for command-based integration
- Tool registration for Jira operations
API Endpoints
List Tickets
Retrieves a list of Jira tickets, optionally filtered by a JQL query.
Endpoint: GET /api/tickets
Query Parameters:
Parameter | Type | Required | Description |
---|---|---|---|
jql | string | No | Jira Query Language (JQL) string to filter tickets |
Example Request:
Example Response:
Get Ticket
Retrieves detailed information about a specific ticket.
Endpoint: GET /api/tickets/:id
Path Parameters:
Parameter | Type | Required | Description |
---|---|---|---|
id | string | Yes | The Jira ticket ID (e.g., TEST-123) |
Example Request:
Example Response:
Get Ticket Comments
Retrieves all comments for a specific ticket.
Endpoint: GET /api/tickets/:id/comments
Path Parameters:
Parameter | Type | Required | Description |
---|---|---|---|
id | string | Yes | The Jira ticket ID (e.g., TEST-123) |
Example Request:
Example Response:
Create Ticket
Creates a new Jira ticket.
Endpoint: POST /api/tickets
Request Body:
Parameter | Type | Required | Description |
---|---|---|---|
summary | string | Yes | The ticket summary |
description | string | Yes | The ticket description |
projectKey | string | Yes | The project key (e.g., TEST) |
issueType | string | Yes | The type of issue (e.g., Task, Bug) |
Example Request:
Example Response:
Add Comment
Adds a new comment to an existing ticket.
Endpoint: POST /api/tickets/:id/comments
Path Parameters:
Parameter | Type | Required | Description |
---|---|---|---|
id | string | Yes | The Jira ticket ID (e.g., TEST-123) |
Request Body:
Parameter | Type | Required | Description |
---|---|---|---|
body | string | Yes | The comment text |
Example Request:
Example Response:
Update Status
Updates the status of an existing ticket.
Endpoint: POST /api/tickets/:id/status
Path Parameters:
Parameter | Type | Required | Description |
---|---|---|---|
id | string | Yes | The Jira ticket ID (e.g., TEST-123) |
Request Body:
Parameter | Type | Required | Description |
---|---|---|---|
transitionId | string | Yes | The ID of the transition to perform |
Example Request:
Example Response:
Search Tickets
Searches for tickets across specified projects using text search.
Endpoint: GET /api/tickets/search
Query Parameters:
Parameter | Type | Required | Description |
---|---|---|---|
searchText | string | Yes | Text to search for in tickets |
projectKeys | string | Yes | Comma-separated list of project keys to search in |
maxResults | number | No | Maximum number of results to return (default: 50) |
Example Request:
Example Response:
You must be authenticated.
A TypeScript-based server that enables Cursor editor to interact with Jira tickets for viewing, creating, commenting on, and updating tickets directly from the editor.