# Jira MCP Server
MCP (Model Context Protocol) server for Jira integration. Allows Claude Code (or any MCP client) to interact with your Jira tasks.
## Features
- ✅ **Get your tasks** - Fetch tasks assigned to you, filtered by project and status
- ✅ **Get task details** - Get detailed information about specific tasks
- ✅ **Create tasks** - Create new Jira tasks with description and issue type
## Prerequisites
- Node.js 18+
- Jira account with API access
- Jira API token
## Setup
### 1. Clone and Install
```bash
git clone <your-repo-url>
cd jira-mcp-server
npm install
```
### 2. Get Jira API Token
1. Go to https://id.atlassian.com/manage-profile/security/api-tokens
2. Click "Create API token"
3. Give it a name (e.g., "MCP Server")
4. Copy the token (you won't see it again!)
### 3. Get Your Account ID
```bash
curl -u your-email@example.com:your-api-token \
https://cryptobplatform.atlassian.net/rest/api/3/myself | jq .accountId
```
Or open in browser (after logging in):
https://cryptobplatform.atlassian.net/rest/api/3/myself
### 4. Configure Environment Variables
Create `.env` file (or configure in Claude Code):
```bash
cp .env.example .env
# Edit .env with your credentials
```
## Usage with Claude Code
### Configuration
Add to your Claude Code config (usually `~/.config/claude/config.json` or similar):
```json
{
"mcpServers": {
"jira": {
"command": "node",
"args": ["/absolute/path/to/jira-mcp-server/index.js"],
"env": {
"JIRA_BASE_URL": "https://cryptobplatform.atlassian.net",
"JIRA_EMAIL": "andreu.slynchyk@gmail.com",
"JIRA_API_TOKEN": "your-api-token-here",
"JIRA_ASSIGNEE_ACCOUNT_ID": "6148ce85071141006ab17eb7"
}
}
}
}
```
### Example Prompts for Claude Code
Once configured, you can ask Claude Code:
```
"Show me my current tasks in ART project"
"Get details about task ART-114"
"Create a new task in ART: Fix login bug"
"What tasks are in progress?"
```
## Available Tools
### 1. `get_my_tasks`
Get your Jira tasks filtered by project and status.
**Parameters:**
- `projectKey` (string, optional) - Project key (default: "ART")
- `status` (string, optional) - Task status (default: "In Progress")
**Example:**
```javascript
{
"projectKey": "ART",
"status": "In Progress"
}
```
### 2. `get_task_details`
Get detailed information about a specific task.
**Parameters:**
- `issueKey` (string, required) - Task key (e.g., "ART-114")
**Example:**
```javascript
{
"issueKey": "ART-114"
}
```
### 3. `create_task`
Create a new Jira task.
**Parameters:**
- `projectKey` (string, required) - Project key
- `summary` (string, required) - Task title
- `description` (string, optional) - Task description
- `issueType` (string, optional) - Issue type: "Задача", "Баг", "История" (default: "Задача")
**Example:**
```javascript
{
"projectKey": "ART",
"summary": "Fix authentication issue",
"description": "Users cannot login with OAuth",
"issueType": "Баг"
}
```
## Testing Locally
You can test the server directly:
```bash
npm start
```
Then send a JSON-RPC request via stdin:
```bash
echo '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' | node index.js
```
## Troubleshooting
### Authentication Error
Make sure your API token is correct and your email matches your Jira account.
### "Task not found" Error
Check that:
1. The task key is correct (e.g., "ART-114" not "art-114")
2. You have permission to view the task
3. The project key is correct
### Environment Variables Not Loading
When using with Claude Code, make sure to set environment variables in the `mcpServers` config, not in a `.env` file.
## Project Structure
```
jira-mcp-server/
├── index.js # Main MCP server implementation
├── package.json # Dependencies and scripts
├── .env.example # Example environment variables
└── README.md # This file
```
## Security Notes
⚠️ **Never commit your API token to git!**
Add to `.gitignore`:
```
.env
node_modules/
```
## License
MIT
## Author
andreu slynchyk (andreu.slynchyk@gmail.com)