A modular and extensible Model Context Protocol (MCP) server for Jira and GitHub integration, enabling end-to-end automation of developer workflows - from issue tracking to code changes and pull request management - via AI agents inside the IDE. - Jira integration: fetch issues by filters, search via JQL, and transition issues across workflows - GitHub integration: create branches, open and merge
Add this skill
npx mdskills install TamarEngel/jira-github-mcpWell-documented MCP server with comprehensive Jira-GitHub-Git workflow integration and clear tool descriptions
1# Jira - GitHub MCP Server23A modular and extensible Model Context Protocol (MCP) server for Jira and4GitHub integration, enabling end-to-end automation of developer workflows -5from issue tracking to code changes and pull request management - via AI6agents inside the IDE.789## Overview1011- **Jira integration**: fetch issues by filters, search via JQL, and transition issues across workflows12- **GitHub integration**: create branches, open and merge PRs13- **Local Git operations**: stage, commit, and push changes locally14- **IDE-native**: works with any MCP-compatible agent (e.g., GitHub Copilot) over stdio15- **End-to-end workflow**: Jira issue → branch → code → commit → PR → merge → Jira status update1617## Why1819Developers constantly context-switch between Jira, GitHub, and their IDE,20breaking focus and slowing down delivery. This project transforms that workflow21into a seamless, IDE-native, conversational experience, allowing developers to22move from Jira issue to merged pull request using natural language and23AI-assisted automation.2425## Features2627- **Retrieve, filter, and search** Jira issues using **fields and JQL**28- **Transition** Jira issues across **workflow statuses**29- **Automate branch creation** as part of the **Jira-driven workflow**30- **Commit and push** changes from the **local Git repository**31- **Create and merge** GitHub **pull requests**32- **MCP resources** providing **workflow guidance** and **current issue context**333435## Available Tools3637| Tool | Description |38|------|-------------|39| `jira_get_issue` | Retrieve a Jira issue by key (e.g., KAN-1) with configurable fields |40| `jira_search_issues` | Search Jira using JQL; paginate and filter results |41| `jira_get_my_issues` | List issues assigned to the current user, optionally filtered by status/type... |42| `jira_transition_issue` | Move an issue to another status with optional comment |43| `create_branch_for_issue` | Create a new Git branch (e.g., `feature/KAN-15`) based on a Jira issue |44| `create_pull_request` | Create a PR on GitHub from a branch |45| `git_commit_and_push` | Stage all changes, commit with a message, and push to a branch |46| `merge_pull_request` | Merge a PR using squash, merge, or rebase; optionally check CI status |4748## Project Structure4950- `src/` — Application source code51 - `server/` — MCP server entry point and tool registration52 - `config/` — Configuration loading for Jira and GitHub53 - `providers/` — Jira/GitHub API clients and local Git operations54 - `tools/` — MCP tool definitions and implementations55 - `resources/` — MCP resources (workflow guidance, issue context)56 - `prompts/` — AI-facing prompts used internally by the server to guide agent behavior57- `tests/` — Integration and unit tests58- `pyproject.toml` — Project metadata and dependencies59- `uv.lock` — Dependency lockfile6061## Architecture Overview6263High-level overview of the system design and main components.6465See full architecture documentation: [docs/architecture.md](docs/architecture.md)666768## Installation & Setup6970### Requirements71- Python 3.10+72- Git (available on PATH)73- Jira instance (Cloud or self-hosted) with REST API v3 access74- GitHub repository with token-based API access757677### 1. Clone the Repository7879```bash80git clone https://github.com/YOUR-USERNAME/jira-github-mcp.git81cd jira-github-mcp82```8384### 2. Create & Activate a Virtual Environment8586Using `uv` (recommended)87```bash88uv venv89```9091Or with `python`92```bash93python -m venv .venv94```9596### 3. Install Dependencies9798Using `uv` (recommended):99```bash100uv sync101```102103Or with pip:104```bash105pip install -r requirements.txt106```107108The project depends on:109- `fastmcp`: MCP protocol and server utilities110111112### 4. Configure Environment Variables113114Create a `.env` file in the repository root:115```env116# Jira Configuration117JIRA_BASE_URL=https://your-instance.atlassian.net118JIRA_EMAIL=your-email@example.com119JIRA_API_TOKEN=your-jira-api-token120121# GitHub Configuration122GITHUB_TOKEN=your-github-personal-access-token123GIT_REPO_URL=https://github.com/owner/repo.git124GIT_DEFAULT_BRANCH=main125126# Optional: Local Git Repository Path127# If omitted, defaults to the current working directory128GIT_REPO_LOCAL_PATH=/path/to/local/repo129```130131**Notes:**132- `JIRA_BASE_URL` should not end with `/`133- Grant the GitHub PAT only the minimal permissions required (branches, pull requests, etc.)134135### 5. Run the MCP Server136137Run the server as a Python module:138```bash139python -m src.server.server140```141142If you defined an entrypoint, you can also run:143```bash144mcp-server145```146147### 6. Connect from an MCP Client148149To use this server with an MCP client (e.g., VS Code / **GitHub Copilot**), configure the client to run the server from the project root.150151**Example MCP configuration:**152```json153{154 "servers": {155 "jira-github-mcp-server": {156 "type": "stdio",157 "command": "python",158 "args": ["-m", "src.server.server"],159 "cwd": "/absolute/path/to/jira-github-mcp"160 }161 }162}163```164165> **Note:** Replace `/absolute/path/to/mcp-server` with the actual path to the repository.166167### Connecting to GitHub Copilot168169Here's how to connect and start using the server with Copilot:1701711. Open VS Code and ensure **GitHub Copilot** is installed1722. Sign in with your GitHub account (if not already signed in)1733. Add the MCP server configuration to your VS Code settings (see JSON above)1744. Reload VS Code1755. Start asking Copilot natural language questions—it will invoke the tools automatically176177## How It Works178179```mermaid180%%{init: {'flowchart': {'htmlLabels': true, 'useMaxWidth': false, 'fontSize': 12}}}%%181graph LR182 IDE["Your IDE<br/>VS Code + Copilot"]183 MCP["MCP Server"]184 JIRA["Jira API<br/>(httpx.Async)"]185 GITHUB["GitHub API<br/>(httpx.Async)"]186 GIT["Local Git"]187188 IDE -->|ask| MCP189 MCP -->|fetch/update| JIRA190 MCP -->|create/merge| GITHUB191 MCP -->|commit/push| GIT192 MCP -->|respond| IDE193```194195## Example Workflow196197This example demonstrates a complete issue-to-merge flow using GitHub Copilot with this MCP server.1981991. **Discover the next task**200201 Ask Copilot:202 > "What is the most urgent task assigned to me?"203204 **Call Tools:**205 - `jira_get_my_issues` — list issues assigned to the user206 - `jira_search_issues` — prioritize by status or urgency207208 _Selected issue: `KAN-42`_2092102. **Start working on the issue**211212 Ask Copilot:213 > "Start work on KAN-42"214215 **Call Tools:**216 - `jira_get_issue(issue_key="KAN-42")`217 - `create_branch_for_issue(issue_key="KAN-42")`218 - `jira_transition_issue(issue_key="KAN-42", to_status="In Progress")`219220 Make changes in your editor.2212223. **Commit changes**223224 Ask Copilot:225 > "Commit my changes with message 'Implement KAN-42'"226227 **Call Tools:**228 - `git_commit_and_push(message="Implement KAN-42", branch="feature/KAN-42")`2292304. **Create a pull request**231232 Ask Copilot:233 > "Create a PR for KAN-42"234235 **Call Tools:**236 - `create_pull_request(issue_key="KAN-42", branch_name="feature/KAN-42")`237 - `jira_transition_issue(issue_key="KAN-42", to_status="In Review")`238239 Code review and CI checks run on GitHub.2402415. **Merge and close the issue**242243 Ask Copilot:244 > "Merge the PR and move KAN-42 to Done"245246 **Call Tools:**247 - `merge_pull_request(pr_number=123)`248 - `jira_transition_issue(issue_key="KAN-42", to_status="Done")`249250 Issue closed, code merged, workflow complete.251252253254255## Use Cases256257- Day-to-day development workflows across Jira issues, branches, and pull requests258- Code review processes with clear pull request status tracking259- Sprint execution and task progress visibility260- Rapid bug fixes and hotfix workflows261- End-to-end feature development from issue to merge262- Team collaboration with consistent status and ownership tracking263264265## Future Enhancements266267- **Multi-platform support**: Extend integrations beyond GitHub to additional platforms (e.g. GitLab)268- **Smarter workflows**: Multi-repo support, reusable JQL templates, and configurable automation rules269- **Deeper automation**: AI-assisted PR/commit drafting, webhook-driven synchronization, and CI/CD feedback270271272273## Summary274275This MCP server provides a clear and traceable development workflow by connecting Jira and GitHub through a single conversational interface.276277By reducing manual coordination and keeping issues, branches, and pull requests in sync, it helps teams focus on development rather than process.278279*Designed with a focus on clarity, extensibility, and developer experience.*280281
Full transparency — inspect the skill content before installing.