Skip to main content
Glama

JIRA MCP Server

by getsec
README.md6.99 kB
# JIRA MCP Server ## Security Wanning This repository contains security training materials and proof-of-concept code designed for educational purposes only. The code demonstrates security vulnerabilities and attack techniques that could be harmful if misused. Malicious sample code is in `./malicious_code_examples` **AUTHORIZED USE ONLY**: This code is provided exclusively for: - Security research and education - Authorized penetration testing with explicit written permission - Security awareness training in controlled environments - Academic study of cybersecurity concepts **PROHIBITED USES**: This code must NOT be used for: - Unauthorized access to computer systems - Malicious attacks against any systems or networks - Any illegal activities or violations of computer crime laws - Testing against systems without explicit written authorization > By downloading, viewing, or using any code in this repository, you agree to use it only for lawful, authorized purposes and accept full responsibility for your actions. ## Disclaimer of Liability The author(s) and contributors to this repository: - Provide this code "AS IS" without warranty of any kind - Disclaim all liability for any damages resulting from use or misuse - Do not endorse or encourage any illegal or unauthorized activities - Assume no responsibility for actions taken by users of this code ## Overview A Model Context Protocol (MCP) server that provides JIRA integration. This server allows AI systems to interact with JIRA issues, search for tickets, create new issues, and access project information. > Examples here will use claude. ## Features - **Get JIRA Issues**: Retrieve detailed information about specific JIRA issues - **Create Issues**: Create new JIRA issues with customizable fields - **Search Issues**: Search for JIRA issues using JQL (JIRA Query Language) - **Project Information**: Access project keys and user information - **Resources**: Access JIRA project keys and current user information ## Prerequisites - Python 3.13 or higher - JIRA account with API access - JIRA Personal Access Token (PAT) ## Installation 1. Clone or download this repository: ```bash git clone <repository-url> cd longcon-mcp-demo ``` 2. Install dependencies using uv (recommended) or pip: ```bash # Using uv (recommended) uv sync # Or using pip pip install -r requirements.txt ``` ## Configuration ### 1. JIRA Setup 1. Create a JIRA Personal Access Token: - Go to your JIRA instance - Navigate to Account Settings > Security > API tokens - Create a new token and copy it 2. Create a `.env` file in the project root: ```bash JIRA_USERNAME=your-email@example.com JIRA_PAT=your-personal-access-token JIRA_URL=https://your-instance.atlassian.net ``` 4. Update the project keys in the `jira_project_keys()` function (line 24): ```python return ['YOUR_PROJECT_KEY'] # Replace with your actual project keys ``` ### 2. Test the Server Run the server locally to ensure it's working: ```bash python main.py ``` The server should start without errors. Press Ctrl+C to stop it. ## Claude Desktop Configuration ### 1. Install Claude Desktop Download and install Claude Desktop from [https://claude.ai/download](https://claude.ai/download) ### 2. Configure MCP Server 1. Locate your Claude Desktop configuration file: - **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json` - **Windows**: `%APPDATA%\Claude\claude_desktop_config.json` - **Linux**: `~/.config/Claude/claude_desktop_config.json` 2. Add the MCP server configuration to the file. If the file doesn't exist, create it: ```json { "mcpServers": { "longcon": { "command": "python", "args": ["/absolute/path/to/longcon-mcp-demo/main.py"], "env": { "JIRA_USERNAME": "your-email@example.com", "JIRA_PAT": "your-personal-access-token" } } } } ``` **Important**: Replace `/absolute/path/to/longcon-mcp-demo/main.py` with the actual absolute path to your `main.py` file. ### 3. Alternative Configuration (Using .env file) If you prefer to use the `.env` file for credentials: ```json { "mcpServers": { "longcon": { "command": "python", "args": ["/absolute/path/to/longcon-mcp-demo/main.py"], "cwd": "/absolute/path/to/longcon-mcp-demo" } } } ``` ### 4. Using uv (Recommended) For better dependency management, you can use uv: ```json { "mcpServers": { "longcon": { "command": "uv", "args": ["run", "python", "main.py"], "cwd": "/absolute/path/to/longcon-mcp-demo", "env": { "JIRA_USERNAME": "your-email@example.com", "JIRA_PAT": "your-personal-access-token" } } } } ``` ## Usage in Claude Once configured, restart Claude Desktop. You can now use JIRA-related commands in your conversations: ### Available Tools 1. **Get JIRA Issue**: ``` Get details for issue CRM-123 ``` 2. **Create JIRA Issue**: ``` Create a new task in project CRM with summary "Fix login bug" and description "Users unable to login" ``` 3. **Search JIRA Issues**: ``` Search for all open issues assigned to me ``` ### Available Resources - **Project Keys**: Access available project keys - **User Information**: Get current user details ### Example Interactions ``` User: What are the details of issue CRM-123? Claude: [Uses get_jira_issue tool to fetch and display issue details] User: Create a bug report for the login issue Claude: [Uses create_jira_issue tool to create a new issue] User: Show me all high-priority open issues Claude: [Uses search_jira_issues with JQL: "priority = High AND status = Open"] ``` ## Troubleshooting ### Common Issues 1. **"JIRA_USERNAME and JIRA_PAT must be set" Error** - Ensure your `.env` file is in the correct location - Verify the environment variables are set correctly in Claude Desktop config 2. **"Permission Denied" Error** - Check that your JIRA PAT has the necessary permissions - Verify your JIRA username is correct 3. **"Server not found" Error** - Ensure the JIRA server URL is correct in `main.py` - Check your internet connection 4. **Claude Desktop doesn't recognize the server** - Verify the absolute path in the configuration is correct - Restart Claude Desktop after making configuration changes - Check Claude Desktop logs for error messages ### Verification To verify everything is working: 1. Start a new conversation in Claude Desktop 2. Ask: "What JIRA projects are available?" 3. Claude should respond with the project keys you configured ### Dependencies - `jira`: JIRA Python library for API interactions - `fastmcp`: Simplified MCP server framework - `python-dotenv`: Environment variable management ## Security Notes - Never commit your `.env` file or expose your JIRA PAT - Use environment variables or secure configuration management - Regularly rotate your JIRA Personal Access Tokens - Limit PAT permissions to only what's necessary

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/getsec/longcon-2025-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server