home / mcp / gitlab jira mcp server
Provides interaction with GitLab and Jira to manage projects, issues, merge requests, pipelines, and tickets via MCP clients.
Configuration
View docs{
"mcpServers": {
"hainanzhao-mcp-gitlab-jira": {
"command": "docker",
"args": [
"exec",
"-i",
"mcp-gitlab-jira-container",
"npm",
"start"
],
"env": {
"GITLAB_URL": "YOUR_GITLAB_URL",
"ATLASSIAN_API_TOKEN": "YOUR_API_TOKEN",
"ATLASSIAN_SITE_NAME": "YOUR_SITE_NAME",
"GITLAB_ACCESS_TOKEN": "YOUR_GITLAB_TOKEN",
"ATLASSIAN_USER_EMAIL": "YOUR_EMAIL"
}
}
}
}This MCP server enables AI agents to interact with GitLab and Jira instances, letting you list projects and issues, manage merge requests, pipelines, branches, issues, and Jira tickets, and perform project and ticket operations through a single, convenient interface.
You run the MCP server and connect your MCP client, such as gemini-cli, to gain access to GitLab and Jira capabilities. Start the server, then configure your MCP client with the server’s command and environment settings. Use the client’s tool calls to fetch data, create or update items, and automate workflows across GitLab and Jira without leaving your chat or automation session.
Prerequisites: you need Node.js 18 or newer, and access tokens for GitLab and Jira.
Install the MCP package globally.
npm i -g mcp-gitlab-jiraSet up environment variables for GitLab and Jira access.
# GitLab
export GITLAB_URL="https://your-gitlab-instance.com"
export GITLAB_ACCESS_TOKEN="your-personal-access-token"
# Jira
export ATLASSIAN_SITE_NAME="your-atlassian-site-name"
export ATLASSIAN_USER_EMAIL="[email protected]"
export ATLASSIAN_API_TOKEN="your-jira-api-token"You can run the MCP server in a Docker container. Use the following example to start a persistent container and pass the required environment variables.
docker run -d --name mcp-gitlab-jira-container \
-e GITLAB_URL="https://your-gitlab-instance.com" \
-e GITLAB_ACCESS_TOKEN="your-personal-access-token" \
-e ATLASSIAN_SITE_NAME="your-atlassian-site-name" \
-e ATLASSIAN_USER_EMAIL="[email protected]" \
-e ATLASSIAN_API_TOKEN="your-jira-api-token" \
hainanzhao/mcp-gitlab-jira:latestIf you prefer to run a persistent container and control the MCP process from your client, you can configure a session that executes the start command inside the running container.
{
"mcpServers": {
"gitlab_jira_mcp": {
"command": "docker",
"args": ["exec", "-i", "mcp-gitlab-jira-container", "npm", "start"],
"env": {}
}
}
}If you want to run a fresh container for each MCP session, configure as shown.
{
"mcpServers": {
"gitlab_jira_mcp": {
"command": "docker",
"args": [
"run", "--rm", "-i",
"-e", "GITLAB_URL=https://your-gitlab-instance.com",
"-e", "GITLAB_ACCESS_TOKEN=your-personal-access-token",
"-e", "ATLASSIAN_SITE_NAME=your-atlassian-site-name",
"-e", "[email protected]",
"-e", "ATLASSIAN_API_TOKEN=your-jira-api-token",
"hainanzhao/mcp-gitlab-jira:latest"
],
"env": {}
}
}
}Fetches detailed information about a GitLab Merge Request, including file diffs.
Fetches the content of a specific file at a given SHA in a GitLab project.
Adds a comment to a GitLab Merge Request, including inline comments and replies.
Lists merge requests for a given GitLab project.
Assigns reviewers to a GitLab Merge Request.
Lists all members of a GitLab project.
Lists all members of a GitLab project by project name.
Filters GitLab projects by name using fuzzy matching.
Lists all accessible GitLab projects.
Fetches releases for a GitLab project.
Filters releases for a GitLab project since a specific version.
Retrieves a GitLab user ID by username.
Fetches activities for a GitLab user.
Gets pipelines for a GitLab project.
Gets pipelines for a specific Merge Request.
Gets detailed information about a pipeline.
Gets jobs for a specific pipeline.
Gets logs for a specific job.
Triggers a new pipeline for a specific branch.
Retries a failed pipeline.
Cancels a running pipeline.
Lists all branches in a GitLab project.
Creates a new branch in a GitLab project.
Deletes a branch from a GitLab project.
Gets details about a specific branch.
Lists issues in a GitLab project.
Gets detailed information about a GitLab issue.
Creates a new issue in a GitLab project.
Updates an existing GitLab issue.
Closes a GitLab issue.
Adds a comment to a GitLab issue.
Gets comments for a GitLab issue.
Fetches detailed Jira ticket information with flattened fields.
Fetches comments for a Jira ticket.
Adds a comment to a Jira ticket.
Searches Jira tickets using a JQL string.
Creates a new Jira ticket.
Fetches available transitions for a Jira ticket.
Updates a Jira ticket summary, description, and labels.
Updates custom fields on a Jira ticket.
Updates the Jira ticket priority with fuzzy matching for allowed values.
Updates the Jira ticket sprint with fuzzy matching for active/future sprints.
Transitions a Jira ticket to a new status.
Fetches all fields from Jira.
Gets all accessible Jira projects.
Gets detailed information about a Jira project.
Gets components for a Jira project.
Gets versions for a Jira project.