MCP-JIRA-Python Server

#!/usr/bin/env python3 import os from jira import JIRA def test_jira_connection(): # Check for required environment variables required_vars = ["JIRA_HOST", "JIRA_EMAIL", "JIRA_API_TOKEN"] missing_vars = [var for var in required_vars if not os.getenv(var)] if missing_vars: print(f"Error: Missing required environment variables: {', '.join(missing_vars)}") print("\nPlease set them using:") print("export JIRA_HOST=your-domain.atlassian.net") print("export JIRA_EMAIL=your-email@domain.com") print("export JIRA_API_TOKEN=your-api-token") return try: # Initialize JIRA client (using your working configuration style) server = f"https://{os.getenv('JIRA_HOST')}" jiraOptions = {'server': server} jira = JIRA(options=jiraOptions, basic_auth=(os.getenv("JIRA_EMAIL"), os.getenv("JIRA_API_TOKEN"))) # Get issues from TEST project issues = jira.search_issues('project = TEST ORDER BY created DESC', maxResults=5) print("\nLatest TEST Project Issues:") print("-" * 50) for issue in issues: print(f"Key: {issue.key}") print(f"Summary: {issue.fields.summary}") print(f"Status: {issue.fields.status}") print("-" * 50) print(f"\nTotal issues found: {len(issues)}") # Try to get TEST-1 specifically try: test_issue = jira.issue("TEST-1") print("\nTEST-1 Details:") print("-" * 50) print(f"Summary: {test_issue.fields.summary}") print(f"Description: {test_issue.fields.description}") print(f"Status: {test_issue.fields.status}") print(f"Created: {test_issue.fields.created}") except Exception as e: print(f"\nCouldn't access TEST-1: {str(e)}") except Exception as e: print(f"\nError connecting to JIRA: {str(e)}") print("Please check your environment variables and network connection.") if __name__ == "__main__": test_jira_connection()