Skip to main content
Glama

GitHub-Jira MCP Server

README.md3.81 kB
# GitHub-Jira MCP Server A comprehensive Model Context Protocol (MCP) server that provides secure integration between GitHub and Jira with proper permission controls and security enforcement. ## 🛠️ Installation ### Prerequisites - Python 3.11+ - GitHub Personal Access Token - Jira OAuth App Credentials ### Setup 1. **Clone the repository** ```bash git clone <your-repo> cd mcp-servers ``` 2. **Install dependencies** ```bash uv sync ``` 3. **Configure environment variables** ```bash cp env.example .env # Edit .env with your actual credentials ``` 4. **Set up credentials** **GitHub:** - Go to [GitHub Settings > Tokens](https://github.com/settings/tokens) - Generate a new personal access token - Required scopes: `repo` (for private repos), `public_repo` (for public repos) **Jira:** - Go to [Atlassian Developer Console](https://developer.atlassian.com/console/myapps/) - Create a new OAuth app - Set redirect URI to: `http://localhost:8080/callback` - Note your Jira instance URL, client ID, and client secret ## 🔧 Configuration ### Environment Variables Create a `.env` file in your project root: ```bash # GitHub Configuration GITHUB_TOKEN=ghp_your_github_token_here # Jira OAuth Configuration JIRA_URL=https://your-domain.atlassian.net JIRA_CLIENT_ID=your_jira_oauth_client_id_here JIRA_CLIENT_SECRET=your_jira_oauth_client_secret_here # Optional: Jira Access Tokens (will be obtained automatically via OAuth) JIRA_ACCESS_TOKEN= JIRA_REFRESH_TOKEN= # Optional: Logging LOG_LEVEL=INFO ``` ### MCP Client Configuration Add this to your MCP client configuration: ```json { "mcpServers": { "github-jira": { "command": "python", "args": ["mcp_github_jira_server.py"], "env": { "GITHUB_TOKEN": "your_token_here", "JIRA_URL": "https://your-domain.atlassian.net", "JIRA_CLIENT_ID": "your_jira_oauth_client_id_here", "JIRA_CLIENT_SECRET": "your_jira_oauth_client_secret_here" } } } } ``` ## 📚 Usage ### Starting the Server ```bash python mcp_github_jira_server.py ``` ### Available Tools #### GitHub Tools - `github_read_file(owner, repo, path)` - Read file content with security checks - `github_create_issue(owner, repo, title, body, labels)` - Create issues in own repos - `github_create_pull_request(owner, repo, title, body, head, base)` - Create PRs in own repos - `github_delete_file(owner, repo, path, message, sha)` - Delete files from own repos - `check_github_permissions()` - Check current GitHub permissions #### Jira Tools - `jira_create_issue(project_key, summary, description, issue_type)` - Create issues - `jira_search_issues(jql, max_results)` - Search issues using JQL - `jira_update_issue(issue_key, updates)` - Update issue fields - `jira_add_comment(issue_key, comment)` - Add comments to issues - `jira_transition_issue(issue_key, transition_id)` - Move issues through workflows - `check_jira_permissions()` - Check current Jira permissions - `setup_jira_oauth()` - Setup Jira OAuth authentication ### Available Resources #### GitHub Resources - `github://{owner}/{repo}` - Repository information - `github://{owner}/{repo}/files/{path}` - File content #### Jira Resources - `jira://projects/{project_key}` - Project information - `jira://issues/{issue_key}` - Issue details ### Available Prompts - `check_repository_security_permissions` - Check GitHub permissions - `read_file_from_github_repo` - Read files from GitHub - `create_jira_issue_in_project` - Create Jira issues - `update_jira_issue_workflow` - Update workflow states - `github_repository_management` - Manage GitHub repos - `jira_project_workflow_management` - Manage Jira projects - `setup_jira_oauth_authentication` - Setup Jira OAuth authentication

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/KronosWasTaken/mcp-servers'

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